def test_merge_none(self): old_content = textwrap.dedent(u""" [metadata] # something something name = fred [entry_points] console_scripts = foo = bar:quux """) merged = project.merge_setup_cfg(old_content, {}) self.assertEqual(old_content, merged)
def _copy_requires(suffix, softupdate, hacking, proj, global_reqs, non_std_reqs, blacklist={}): """Copy requirements files.""" actions = [] for source, content in sorted(proj['requirements'].items()): dest_path = os.path.join(proj['root'], source) # this is specifically for global-requirements gate jobs so we don't # modify the git tree if suffix: dest_path = "%s.%s" % (dest_path, suffix) dest_name = "%s.%s" % (source, suffix) else: dest_name = source dest_sequence = list(requirement.to_reqs(content)) actions.append(project.Verbose("Syncing %s" % dest_path)) _actions, reqs = _sync_requirements_file(global_reqs, dest_sequence, dest_path, softupdate, hacking, non_std_reqs, blacklist) actions.extend(_actions) actions.append(project.File(dest_name, requirement.to_content(reqs))) extras = project.extras(proj) output_extras = {} for extra, content in sorted(extras.items()): dest_name = 'extra-%s' % extra dest_path = "%s[%s]" % (proj['root'], extra) dest_sequence = list(requirement.to_reqs(content)) actions.append(project.Verbose("Syncing extra [%s]" % extra)) _actions, reqs = _sync_requirements_file(global_reqs, dest_sequence, dest_path, softupdate, hacking, non_std_reqs, blacklist) actions.extend(_actions) output_extras[extra] = reqs dest_path = 'setup.cfg' if suffix: dest_path = "%s.%s" % (dest_path, suffix) actions.append( project.File(dest_path, project.merge_setup_cfg(proj['setup.cfg'], output_extras))) return actions
def test_merge_extras(self): old_content = textwrap.dedent(u""" [metadata] name = fred [extras] # Comment a = b # comment c = d [entry_points] console_scripts = foo = bar:quux """) blank = requirement.Requirement('', '', '', '', '') r1 = requirement.Requirement( 'b', '', '>=1', "python_version=='2.7'", '') r2 = requirement.Requirement('d', '', '', '', '# BSD') reqs = { 'a': requirement.Requirements([blank, r1]), 'c': requirement.Requirements([blank, r2])} merged = project.merge_setup_cfg(old_content, reqs) expected = textwrap.dedent(u""" [metadata] name = fred [extras] # Comment a = b>=1:python_version=='2.7' # comment c = d # BSD [entry_points] console_scripts = foo = bar:quux """) self.assertEqual(expected, merged)
def _copy_requires( suffix, softupdate, hacking, proj, global_reqs, non_std_reqs, blacklist={}): """Copy requirements files.""" actions = [] for source, content in sorted(proj['requirements'].items()): dest_path = os.path.join(proj['root'], source) # this is specifically for global-requirements gate jobs so we don't # modify the git tree if suffix: dest_path = "%s.%s" % (dest_path, suffix) dest_name = "%s.%s" % (source, suffix) else: dest_name = source dest_sequence = list(requirement.to_reqs(content)) actions.append(project.Verbose("Syncing %s" % dest_path)) _actions, reqs = _sync_requirements_file( global_reqs, dest_sequence, dest_path, softupdate, hacking, non_std_reqs, blacklist) actions.extend(_actions) actions.append(project.File(dest_name, requirement.to_content(reqs))) extras = project.extras(proj) output_extras = {} for extra, content in sorted(extras.items()): dest_name = 'extra-%s' % extra dest_path = "%s[%s]" % (proj['root'], extra) dest_sequence = list(requirement.to_reqs(content)) actions.append(project.Verbose("Syncing extra [%s]" % extra)) _actions, reqs = _sync_requirements_file( global_reqs, dest_sequence, dest_path, softupdate, hacking, non_std_reqs, blacklist) actions.extend(_actions) output_extras[extra] = reqs dest_path = 'setup.cfg' if suffix: dest_path = "%s.%s" % (dest_path, suffix) actions.append(project.File( dest_path, project.merge_setup_cfg(proj['setup.cfg'], output_extras))) return actions