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()
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()
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)
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'