bombsquad-plugin-manager/test/test_plugin_manager_meta.py

56 lines
1.9 KiB
Python
Raw Normal View History

2022-08-31 04:34:22 +05:30
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,
),
)