Пример #1
0
    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)
Пример #2
0
    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
Пример #3
0
    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()
Пример #4
0
    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)