def test_scanpipe_pipes_codebase_project_codebase_class_with_resources( self): fixtures = self.data_location / "asgiref-3.3.0_fixtures.json" call_command("loaddata", fixtures, **{"verbosity": 0}) project = Project.objects.get(name="asgiref") project_codebase = codebase.ProjectCodebase(project) expected_root = project.codebaseresources.get(path="codebase") self.assertTrue(isinstance(project_codebase.root, CodebaseResource)) self.assertEqual(expected_root, project_codebase.root) self.assertEqual(19, len(project_codebase.resources)) self.assertEqual(expected_root, project_codebase.resources[0]) walk_gen = project_codebase.walk() self.assertEqual(expected_root, next(walk_gen)) expected = "codebase/asgiref-3.3.0-py3-none-any.whl" self.assertEqual(expected, next(walk_gen).path) tree = project_codebase.get_tree() with open(self.data_location / "asgiref-3.3.0_tree.json") as f: expected = json.loads(f.read()) self.assertEqual(expected, tree)
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) fields = ["name", "path"] project_codebase = codebase.ProjectCodebase(self.object) context["tree_data"] = [codebase.get_tree(project_codebase.root, fields)] return context
def test_scanpipe_pipes_codebase_project_codebase_class_no_resources(self): project = Project.objects.create(name="project") project_codebase = codebase.ProjectCodebase(project) with self.assertRaises(AttributeError): project_codebase.root self.assertEqual([], list(project_codebase.resources)) self.assertEqual([], list(project_codebase.walk())) with self.assertRaises(AttributeError): project_codebase.get_tree()
def test_scanpipe_pipes_codebase_get_tree(self): fixtures = self.data_location / "asgiref-3.3.0_fixtures.json" call_command("loaddata", fixtures, **{"verbosity": 0}) project = Project.objects.get(name="asgiref") scan_results = self.data_location / "asgiref-3.3.0_scan.json" virtual_codebase = scancode.get_virtual_codebase(project, scan_results) project_codebase = codebase.ProjectCodebase(project) fields = ["name", "path"] virtual_tree = codebase.get_tree( virtual_codebase.root, fields, codebase=virtual_codebase ) project_tree = codebase.get_tree(project_codebase.root, fields) with open(self.data_location / "asgiref-3.3.0_tree.json") as f: expected = json.loads(f.read()) self.assertEqual(expected, project_tree) self.assertEqual(expected, virtual_tree)