def test_multiple_requirements_files(self): with tempfile.NamedTemporaryFile('w') as f1: f1.write(EXAMPLE_REQUIREMENTS) f1.flush() with tempfile.NamedTemporaryFile('w') as f2: f2.write(EXAMPLE_EXTRA_REQUIREMENTS) f2.flush() got = ciu_main.projects_from_requirements([f1.name, f2.name]) want = self.expected_requirements.union(self.expected_extra_requirements) self.assertEqual(set(got), want)
def test_multiple_requirements_files(self): with tempfile.NamedTemporaryFile('w') as f1: f1.write(EXAMPLE_REQUIREMENTS) f1.flush() with tempfile.NamedTemporaryFile('w') as f2: f2.write('foobar\n') f2.flush() got = ciu_main.projects_from_requirements([f1.name, f2.name]) expected_requirements = frozenset( list(self.expected_requirements) + ['foobar'] ) self.assertEqual(set(got), expected_requirements)
def clean(self): projects = OrderedDict() # using this since sets aren't ordered for requirement in self.requirements: parsed_url_requirement = urlparse(requirement) if parsed_url_requirement.scheme in ('http', 'https'): try: for project in projects_from_requirements(requirement): projects[project] = None except: raise ValidationError("Couldn't check %s." % requirement) else: projects[requirement] = None for project_name in projects.keys(): project_name_validator(project_name) self.projects = projects.keys()
def check(requirements_paths=[], metadata=[], projects=[]): """Return True if all of the specified dependencies have been ported to Python 3. The requirements_paths argument takes a sequence of file paths to requirements files. The 'metadata' argument takes a sequence of strings representing metadata. The 'projects' argument takes a sequence of project names. Any project that is not listed on PyPI will be considered ported. """ dependencies = main.projects_from_requirements(requirements_paths) dependencies.extend(main.projects_from_metadata(metadata)) dependencies.extend(projects) dependencies = set(name.lower() for name in dependencies) py3_projects = pypi.all_py3_projects() all_projects = pypi.all_projects() for dependency in dependencies: if dependency in all_projects and dependency not in py3_projects: return False return True
def check(requirements_paths=[], metadata=[], projects=[]): """Return True if all of the specified dependencies have been ported to Python 3. The requirements_paths argument takes a sequence of file paths to requirements files. The 'metadata' argument takes a sequence of strings representing metadata. The 'projects' argument takes a sequence of project names. Any project that is not listed on PyPI will be considered ported. """ dependencies = [] dependencies.extend(main.projects_from_requirements(requirements_paths)) dependencies.extend(main.projects_from_metadata(metadata)) dependencies.extend(projects) manual_overrides = pypi.manual_overrides() for dependency in dependencies: if dependency in manual_overrides: continue elif not pypi.supports_py3(dependency): return False return True
def clean(self): projects = OrderedDict() # using this since sets aren't ordered for requirement in self.requirements: url = urlparse(requirement) if url.scheme in ('http', 'https', 'file'): requirement = [sanitize_github_url(requirement, url)] try: for project in projects_from_requirements(requirement): projects[project] = None except: raise ValidationError("Couldn't check %s." % requirement) else: projects[requirement] = None # from .jobs import get_all_projects # all_projects = get_all_projects(lower=True) # check_all_projects = len(all_projects) > 0 self.projects = list(projects.keys()) for index, project_name in enumerate(self.projects): validators.RegexValidator(project_name_re, 'Project %s invalid' % project_name)(project_name)
def test_requirements(self): with tempfile.NamedTemporaryFile('w') as file: file.write(EXAMPLE_REQUIREMENTS) file.flush() got = ciu_main.projects_from_requirements([file.name]) self.assertEqual(set(got), self.expected_requirements)