ec50bdd50dd3806e5d03064071099bcffeeddcd1
[osm/N2VC.git] / tests / unit / test_constraints.py
1 #
2 # Test our constraints parser
3 #
4
5 import unittest
6
7 from juju import constraints
8
9 class TestConstraints(unittest.TestCase):
10
11 def test_mem_regex(self):
12 m = constraints.MEM
13 self.assertTrue(m.match("10G"))
14 self.assertTrue(m.match("1G"))
15 self.assertFalse(m.match("1Gb"))
16 self.assertFalse(m.match("a1G"))
17 self.assertFalse(m.match("1000"))
18
19 def test_normalize_key(self):
20 _ = constraints.normalize_key
21
22 self.assertEqual(_("test-key"), "test_key")
23 self.assertEqual(_("test-key "), "test_key")
24 self.assertEqual(_(" test-key"), "test_key")
25
26 def test_normalize_val(self):
27 _ = constraints.normalize_value
28
29 self.assertEqual(_("10G"), 10 * 1024)
30 self.assertEqual(_("10M"), 10)
31 self.assertEqual(_("10"), "10")
32 self.assertEqual(_("foo,bar"), ["foo", "bar"])
33
34 def test_parse_constraints(self):
35 _ = constraints.parse
36
37 self.assertEqual(
38 _("mem=10G"),
39 {"mem": 10 * 1024}
40 )
41
42 self.assertEqual(
43 _("mem=10G foo=bar,baz"),
44 {"mem": 10 * 1024, "foo": ["bar", "baz"]}
45 )