Example #1
0
def scan_package_and_save_results(codebase_resource):
    """
    Scan the `codebase_resource` for package and save the results in the database.
    """
    package_info = scancode_api.get_package_info(codebase_resource.location)
    packages = package_info.get("packages", [])

    if packages:
        for package_data in packages:
            codebase_resource.create_and_add_package(package_data)
        codebase_resource.status = "application-package"
        codebase_resource.save()
Example #2
0
def scan_for_application_packages(project):
    """
    Run a package scan on files without status.
    """
    queryset = CodebaseResource.objects.project(project).no_status()

    for codebase_resource in queryset:
        package_info = scancode_api.get_package_info(codebase_resource.location)
        packages = package_info.get("packages", [])
        if packages:
            for package in packages:
                DiscoveredPackage.create_for_resource(package, codebase_resource)
            codebase_resource.status = "application-package"
            codebase_resource.save()
Example #3
0
    def test_get_package_info_can_pickle(self):
        test_file = self.get_test_loc('api/package/package.json')
        package = api.get_package_info(test_file)

        import pickle
        import cPickle
        try:
            _pickled = pickle.dumps(package, pickle.HIGHEST_PROTOCOL)
            _cpickled = cPickle.dumps(package, pickle.HIGHEST_PROTOCOL)
            self.fail(
                'pickle.HIGHEST_PROTOCOL used to fail to pickle this data')
        except:
            _pickled = pickle.dumps(package)
            _cpickled = cPickle.dumps(package)
Example #4
0
 def test_get_package_info_works_for_maven_pom_dot_xml(self):
     test_file = self.get_test_loc('api/package/pom.xml')
     packages = api.get_package_info(test_file)
     assert packages['packages'][0]['version'] == '1.3'