def _update_setup_py(self, new_version): """ If this project has a setup.py, attempt to update it's version. """ setup_file = os.path.join(self.full_project_dir, "setup.py") if not os.path.exists(setup_file): return debug("Found setup.py, attempting to update version.") # We probably don't want version-release in setup.py as release is # an rpm concept. Hopefully this assumption on py_new_version = new_version.split('-')[0] f = open(setup_file, 'r') buf = StringIO.StringIO() for line in f.readlines(): buf.write(replace_version(line, py_new_version)) f.close() # Write out the new setup.py file contents: f = open(setup_file, 'w') f.write(buf.getvalue()) f.close() buf.close() run_command("git add %s" % setup_file)
def _update_setup_py_in_dir(self, new_version, package_dir=None): """ If this subdir has a setup.py, attempt to update it's version. (This is a very minor tweak to the original _update_setup_py method from VersionTagger """ if package_dir is not None: full_package_dir = os.path.join(self.full_project_dir, package_dir) else: full_package_dir = self.full_project_dir setup_file = os.path.join(full_package_dir, "setup.py") if not os.path.exists(setup_file): return debug("Found setup.py in {}, attempting to update version.".format(package_dir)) # We probably don't want version-release in setup.py as release is # an rpm concept. Hopefully this assumption on py_new_version = new_version.split('-')[0] f = open(setup_file, 'r') buf = six.StringIO() for line in f.readlines(): buf.write(replace_version(line, py_new_version)) f.close() # Write out the new setup.py file contents: f = open(setup_file, 'w') f.write(buf.getvalue()) f.close() buf.close() run_command("git add %s" % setup_file)
def _update_setup_py_in_dir(self, new_version, package_dir=None): """ If this subdir has a setup.py, attempt to update it's version. (This is a very minor tweak to the original _update_setup_py method from VersionTagger """ if package_dir is not None: full_package_dir = os.path.join(self.full_project_dir, package_dir) else: full_package_dir = self.full_project_dir setup_file = os.path.join(full_package_dir, "setup.py") if not os.path.exists(setup_file): return debug("Found setup.py in {}, attempting to update version.".format( package_dir)) # We probably don't want version-release in setup.py as release is # an rpm concept. Hopefully this assumption on py_new_version = new_version.split('-')[0] f = open(setup_file, 'r') buf = six.StringIO() for line in f.readlines(): buf.write(replace_version(line, py_new_version)) f.close() # Write out the new setup.py file contents: f = open(setup_file, 'w') f.write(buf.getvalue()) f.close() buf.close() run_command("git add %s" % setup_file)
def _update_setup_py(self, new_version): """ If this project has a setup.py, attempt to update it's version. """ self._update_version_file(new_version) setup_file = os.path.join(self.full_project_dir, "setup.py") if not os.path.exists(setup_file): return debug("Found setup.py, attempting to update version.") # We probably don't want version-release in setup.py as release is # an rpm concept. Hopefully this assumption on py_new_version = new_version.split('-')[0] f = open(setup_file, 'r') buf = StringIO() for line in f.readlines(): buf.write(replace_version(line, py_new_version)) f.close() # Write out the new setup.py file contents: f = open(setup_file, 'w') f.write(buf.getvalue()) f.close() buf.close() run_command("git add %s" % setup_file)
def test_replace_version_no_match(self): line = "this isn't a version fool.\n" self.assertEquals(line, replace_version(line, "2.5.3"))
def test_replace_version_uppercase(self): line = "VERSION='1.0'\n" expected = "VERSION='2.5.3'\n" self.assertEquals(expected, replace_version(line, "2.5.3"))
def test_replace_version_crazy_new_version(self): line = "version='1.0'\n" expected = "version='91asj.;]][[a]sd[]'\n" self.assertEquals(expected, replace_version(line, "91asj.;]][[a]sd[]"))
def test_replace_version_crazy_old_version(self): line = "version='1.0asjhd82371kjsdha98475h87asd7---asdai.**&'\n" expected = "version='2.5.3'\n" self.assertEquals(expected, replace_version(line, "2.5.3"))
def test_replace_version_trailing_chars(self): line = "version = '1.0', blah blah blah\n" expected = "version = '2.5.3', blah blah blah\n" self.assertEquals(expected, replace_version(line, "2.5.3"))
def test_replace_version_double_quote(self): line = 'version="1.0"\n' expected = 'version="2.5.3"\n' self.assertEquals(expected, replace_version(line, "2.5.3"))
def test_replace_version_some_whitespace(self): line = "version = '1.0'\n" expected = "version = '2.5.3'\n" self.assertEquals(expected, replace_version(line, "2.5.3"))