def test_extract_npm_licenses_global_multiple(self): data = json.loads("""{ "name": "name", "licenses": [{"type":"MIT"}, {"type":"Apache"}] }""") name = extract_npm_license(data, "Unknown") self.assertEqual(name, "MIT AND Apache")
def test_extract_npm_licenses_global_empty(self): data = json.loads("""{ "name": "name", "licenses": [] }""") name = extract_npm_license(data, "Unknown") self.assertEqual(name, None)
def test_extract_npm_license_simple(self): data = json.loads("""{ "name": "name", "license": "MIT" }""") name = extract_npm_license(data, "Unknown") self.assertEqual(name, "MIT")
def test_extract_npm_licenses_global_single_string(self): data = json.loads("""{ "name": "name", "licenses": ["MIT"] }""") name = extract_npm_license(data, "Unknown") self.assertEqual(name, "MIT")
def test_extract_npm_license_no_versions(self): data = json.loads( """{ "name": "name" }""" ) name = extract_npm_license(data, "1.0.0") self.assertEqual(name, None)
def test_extract_npm_license_None_version(self): data = json.loads( """{ "name": "name" }""" ) name = extract_npm_license(data, "Unknown") self.assertEqual(name, None)
def test_extract_npm_license_no_version_license(self): data = json.loads("""{ "name": "name", "versions": { "1.0.0": {} } }""") name = extract_npm_license(data, "1.0.0") self.assertEqual(name, UNKNOWN)
def test_extract_npm_license_no_version(self): data = json.loads("""{ "name": "name", "versions": { "6.6.6": { "license": "APACHE" } } }""") name = extract_npm_license(data, "1.0.0") self.assertEqual(name, None)
def test_extract_npm_licenses_specific_version_multiple(self): data = json.loads("""{ "name": "name", "versions": { "1.0.0": { "licenses": [{"type":"MIT"}, {"type":"Apache"}] } } }""") name = extract_npm_license(data, "1.0.0") self.assertEqual(name, "MIT AND Apache")
def test_extract_npm_license_global_priority(self): data = json.loads("""{ "name": "name", "versions": { "1.0.0": { "license": "APACHE" } }, "license": "MIT" }""") name = extract_npm_license(data, "1.0.0") self.assertEqual(name, "MIT")
async def fetch_concurrent(urls): loop = asyncio.get_event_loop() async with aiohttp.ClientSession() as session: tasks = [] for url, version in urls: tasks.append(loop.create_task(fetch(session, url, version))) for result in asyncio.as_completed(tasks): try: output, version = await result page = json.loads(output) if ("name") in page: license_map[f"{page['name']}@{version}"] = extract_npm_license( page, version ) except json.JSONDecodeError: pass
def test_extract_npm_license_None_data(self): name = extract_npm_license(None, None) self.assertEqual(name, None)