2 # Test our constraints parser
7 from juju
import constraints
10 class TestConstraints(unittest
.TestCase
):
12 def test_mem_regex(self
):
14 self
.assertTrue(m
.match("10G"))
15 self
.assertTrue(m
.match("1G"))
16 self
.assertFalse(m
.match("1Gb"))
17 self
.assertFalse(m
.match("a1G"))
18 self
.assertFalse(m
.match("1000"))
20 def test_normalize_key(self
):
21 _
= constraints
.normalize_key
23 self
.assertEqual(_("test-key"), "test_key")
24 self
.assertEqual(_("test-key "), "test_key")
25 self
.assertEqual(_(" test-key"), "test_key")
26 self
.assertEqual(_("TestKey"), "test_key")
27 self
.assertEqual(_("testKey"), "test_key")
29 def test_normalize_val(self
):
30 _
= constraints
.normalize_value
32 self
.assertEqual(_("10G"), 10 * 1024)
33 self
.assertEqual(_("10M"), 10)
34 self
.assertEqual(_("10"), 10)
35 self
.assertEqual(_("foo,bar"), ["foo", "bar"])
37 def test_parse_constraints(self
):
46 _("mem=10G foo=bar,baz"),
47 {"mem": 10 * 1024, "foo": ["bar", "baz"]}