Skip to content

Commit 75e40a4

Browse files
committed
Add unit tests for series selector functionality
1 parent 36f350e commit 75e40a4

1 file changed

Lines changed: 33 additions & 1 deletion

File tree

tests/unit/test_utils.py

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
import unittest
2+
import pytest
23

3-
from juju.utils import juju_config_dir, juju_ssh_key_paths, parse_base_arg
4+
from juju.utils import series_selector, get_base_from_origin_or_channel, parse_base_arg, juju_config_dir, juju_ssh_key_paths, DEFAULT_SUPPORTED_LTS
45
from juju.client import client
6+
from juju.errors import JujuError
7+
from juju.url import URL
58

69

710
class TestDirResolve(unittest.TestCase):
@@ -21,3 +24,32 @@ def test_parse_base_arg(self):
2124
assert isinstance(base, client.Base)
2225
assert base.name == 'ubuntu'
2326
assert base.channel == '22.04'
27+
28+
29+
class TestBaseFromSeries(unittest.TestCase):
30+
def test_get_base_from_series(self):
31+
b = get_base_from_origin_or_channel(client.CharmOrigin(track='latest', risk='edge'), series='jammy')
32+
assert b.name == 'ubuntu'
33+
assert b.channel == '22.04/edge'
34+
35+
36+
class TestSeriesSelector(unittest.TestCase):
37+
def test_series_arg(self):
38+
assert series_selector('jammy', []) == 'jammy'
39+
assert series_selector('jammy', ['jammy']) == 'jammy'
40+
with pytest.raises(JujuError):
41+
series_selector(series_arg='jammy', supported_series=['focal'])
42+
assert series_selector(series_arg='foo', supported_series=[], force=True) == 'foo'
43+
44+
def test_charm_url(self):
45+
assert series_selector(charm_url=URL.parse('ch:jammy/ubuntu'), supported_series=['jammy']) == 'jammy'
46+
47+
def test_model_config(self):
48+
mconf = {'default-base': client.ConfigValue(value='ubuntu@22.04')}
49+
assert series_selector(model_config=mconf, supported_series=['jammy']) == 'jammy'
50+
51+
def test_charm_list_series(self):
52+
assert series_selector(supported_series=['focal', 'jammy']) == 'jammy'
53+
54+
def test_return_lts(self):
55+
assert series_selector() == DEFAULT_SUPPORTED_LTS

0 commit comments

Comments
 (0)