mirror of
https://github.com/bombsquad-community/plugin-manager.git
synced 2025-10-08 14:54:36 +00:00
55 lines
1.9 KiB
Python
55 lines
1.9 KiB
Python
import json
|
|
import re
|
|
|
|
import asyncio
|
|
import aiohttp
|
|
|
|
import unittest
|
|
from test import helpers
|
|
|
|
|
|
class TestPluginManagerMetadata(unittest.IsolatedAsyncioTestCase):
|
|
async def asyncSetUp(self):
|
|
with open("index.json", "rb") as fin:
|
|
self.content = json.load(fin)
|
|
|
|
async def asyncTearDown(self):
|
|
pass
|
|
|
|
def test_keys(self):
|
|
self.assertTrue(self.content["plugin_manager_url"].startswith("http"))
|
|
self.assertTrue(isinstance(self.content["versions"], dict))
|
|
self.assertTrue(isinstance(self.content["categories"], list))
|
|
for category in self.content["categories"]:
|
|
self.assertTrue(category.startswith("http"))
|
|
self.assertTrue(self.content["external_source_url"].startswith("http"))
|
|
|
|
def test_versions_order(self):
|
|
versions = list(self.content["versions"].items())
|
|
sorted_versions = sorted(
|
|
versions,
|
|
key=lambda version: version[0],
|
|
reverse=True,
|
|
)
|
|
self.assertEqual(sorted_versions, versions)
|
|
|
|
async def test_versions_metadata(self):
|
|
versions = tuple(self.content["versions"].items())
|
|
latest_number, latest_version = versions[0]
|
|
async with aiohttp.ClientSession() as session:
|
|
await asyncio.gather(
|
|
helpers.assert_for_network_files_from_versions(
|
|
self.content["plugin_manager_url"],
|
|
self.content["versions"],
|
|
session,
|
|
),
|
|
# Additionally assert for the latest version with tag as "main".
|
|
helpers.assert_for_network_file(
|
|
self.content["plugin_manager_url"].format(
|
|
content_type="raw",
|
|
tag="main",
|
|
),
|
|
latest_version["md5sum"],
|
|
session,
|
|
),
|
|
)
|