def test_generate_new_patch_version_returns_expected_value(self): self._mock_version_list( ['1.1.3', '1.1.4', '1.2', '1.8', '1.8.6', '1.9a1', '1.9b1']) pv = PackageVersion() next_version = pv.generate_next_stable('Django') self.assertEqual('1.9', next_version) self._mock_version_list(['1'], 'Flask') next_version = pv.generate_next_stable('Flask') self.assertEqual('1.0.1', next_version) self._mock_version_list(['1.0'], 'Flask') next_version = pv.generate_next_stable('Flask') self.assertEqual('1.0.1', next_version) self._mock_version_list(['0'], 'Flask') next_version = pv.generate_next_stable('Flask') self.assertEqual('0.0.1', next_version) self._mock_version_list([], 'Flask') next_version = pv.generate_next_stable('Flask') self.assertEqual('0.0.1', next_version) self._mock_version_list(['1.9-a2'], 'Flask') next_version = pv.generate_next_stable('Flask') self.assertEqual('1.9', next_version) self._mock_version_list(['1.9'], 'Flask') next_version = pv.generate_next_stable('Flask') self.assertEqual('1.9.1', next_version) self._mock_version_list(['1-a2'], 'Flask') next_version = pv.generate_next_stable('Flask') self.assertEqual('1', next_version)
def test_old_pip_version_raise_exception(self): out = 'pip 1.0.0 from /virtualenv/lib/python3.5/site-packages (python 3.5)' flexmock(PackageVersion).should_receive( '_run_shell_command').with_args('pip --version').and_return( out).once() pv = PackageVersion() self.assertRaises(RuntimeError, lambda: pv.get_all('Django'))
def version(): import os v = os.getenv('PYTHON_PACKAGE_VERSION') if v is None: try: from package_version import PackageVersion pv = PackageVersion() v = pv.generate_next_stable(package_name='package-version') except ImportError: v = '0.0.1' return v
def test_latest_version_returned_as_expected(self): self._mock_version_list( ['1.1.3', '1.1.4', '1.2', '1.8', '1.8.6', '1.9a1', '1.9b1']) pv = PackageVersion() latest = pv.get_latest('Django') self.assertEqual( str(semantic_version.Version.coerce('1.9b1', partial=True)), latest) self._mock_version_list([], 'Flask') latest = pv.get_latest('Flask') self.assertEqual('0.0.0-na', latest)
def test_all_versions_returned_correctly(self): out = ( "Collecting Django==invalid\n" + " Could not find a version that satisfies the requirement Django==invalid (from versions: " + "1.1.3, 1.1.4, 1.2, 1.8, 1.8.6, 1.9a1, 1.9b1)\n" + "No matching distribution found for Django==invalid") flexmock(PackageVersion).should_receive( '_run_shell_command').with_args( 'pip install Django==invalid').and_return(out).once() pv = PackageVersion() versions = pv.get_all('Django') self.assertEqual( ['1.1.3', '1.1.4', '1.2', '1.8', '1.8.6', '1.9a1', '1.9b1'], versions)