cb9d773dbf2e09223167024e342cb5992fc8e5e5
[osm/N2VC.git] / modules / libjuju / 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 self.assertEqual(_("TestKey"), "test_key")
26 self.assertEqual(_("testKey"), "test_key")
27
28 def test_normalize_val(self):
29 _ = constraints.normalize_value
30
31 self.assertEqual(_("10G"), 10 * 1024)
32 self.assertEqual(_("10M"), 10)
33 self.assertEqual(_("10"), 10)
34 self.assertEqual(_("foo,bar"), ["foo", "bar"])
35
36 def test_parse_constraints(self):
37 _ = constraints.parse
38
39 self.assertEqual(
40 _("mem=10G"),
41 {"mem": 10 * 1024}
42 )
43
44 self.assertEqual(
45 _("mem=10G foo=bar,baz"),
46 {"mem": 10 * 1024, "foo": ["bar", "baz"]}
47 )