Skip to content

Commit

Permalink
get_latest_version: If an extension has no "master" version, check fo…
Browse files Browse the repository at this point in the history
…r a "1.1" version
  • Loading branch information
jpmckinney committed Feb 13, 2021
1 parent ef1de84 commit f91ef1b
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 5 deletions.
6 changes: 5 additions & 1 deletion docs/changelog.rst
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
Changelog
=========

0.0.26 (2021-02-13)
~~~~~~~~~~~~~~~~~~~

- :meth:`~ocdsextensionregistry.util.get_latest_version`: If an extension has no "master" version, check for a "1.1" version.

0.0.25 (2021-02-12)
~~~~~~~~~~~~~~~~~~~

- :class:`~ocdsextensionregistry.codelist.Codelist`: Add :meth:`~ocdsextensionregistry.codelist.Codelist.to_csv` and :meth:`~ocdsextensionregistry.codelist.Codelist.__lt__`.

- :class:`~ocdsextensionregistry.codelist_code.CodelistCode`: Add :meth:`~ocdsextensionregistry.codelist_code.CodelistCode.__lt__`.

0.0.24 (2020-09-12)
Expand Down
4 changes: 3 additions & 1 deletion ocdsextensionregistry/cli/commands/generate_data_file.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
from ocdsextensionregistry import EXTENSION_VERSIONS_DATA, EXTENSIONS_DATA
from ocdsextensionregistry.cli.commands.base import BaseCommand
from ocdsextensionregistry.exceptions import CommandError
from ocdsextensionregistry.util import json_dump
from ocdsextensionregistry.util import default_minor_version, json_dump

logger = logging.getLogger('ocdsextensionregistry')

Expand Down Expand Up @@ -152,6 +152,8 @@ def handle(self):
latest_version = list(versions)[0]
elif 'master' in versions:
latest_version = 'master'
elif default_minor_version in versions:
latest_version = default_minor_version
else:
dated = list(filter(lambda kv: kv[1]['date'], versions.items()))
if dated:
Expand Down
10 changes: 7 additions & 3 deletions ocdsextensionregistry/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
encoding = 'utf-8'
file_uri_offset = 7

default_minor_version = '1.1'

requests_cache.install_cache(backend='memory')


Expand All @@ -35,9 +37,11 @@ def get_latest_version(versions):
if len(versions) == 1:
return versions[0]

for version in versions:
if version.version == 'master':
return version
version_numbers = {version.version: version for version in versions}
if 'master' in version_numbers:
return version_numbers['master']
if default_minor_version in version_numbers:
return version_numbers[default_minor_version]

dated = list(filter(lambda version: version.date, versions))
if dated:
Expand Down
8 changes: 8 additions & 0 deletions tests/commands/test_generate_data_file.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,14 @@ def test_command_latest_version_master(stdout, monkeypatch):
assert json.loads(stdout.getvalue())['location']['latest_version'] == 'master'


@patch('sys.stdout', new_callable=StringIO)
def test_command_latest_version_default(stdout, monkeypatch):
monkeypatch.setattr(sys, 'argv', args + ['legalBasis==1.1', 'legalBasis==1.2'])
main()

assert json.loads(stdout.getvalue())['legalBasis']['latest_version'] == '1.1'


@patch('sys.stdout', new_callable=StringIO)
def test_command_latest_version_dated(stdout, monkeypatch):
monkeypatch.setattr(sys, 'argv', args + ['location==v1.1.5', 'location==v1.1.4'])
Expand Down
10 changes: 10 additions & 0 deletions tests/test_util.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,16 @@ def test_get_latest_version_master():
assert get_latest_version(versions).version == 'master'


def test_get_latest_version_default():
versions = [
ExtensionVersion(arguments(**{'Version': '1'})),
ExtensionVersion(arguments(**{'Date': None})),
ExtensionVersion(arguments(**{'Date': '1000-01-01', 'Version': '1.1'})),
]

assert get_latest_version(versions).version == '1.1'


def test_get_latest_version_dated():
versions = [
ExtensionVersion(arguments(**{'Version': '1'})),
Expand Down

0 comments on commit f91ef1b

Please sign in to comment.