2 # Test our constraints parser
7 from juju
import constraints
9 class TestConstraints(unittest
.TestCase
):
11 def test_mem_regex(self
):
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"))
19 def test_normalize_key(self
):
20 _
= constraints
.normalize_key
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")
28 def test_normalize_val(self
):
29 _
= constraints
.normalize_value
31 self
.assertEqual(_("10G"), 10 * 1024)
32 self
.assertEqual(_("10M"), 10)
33 self
.assertEqual(_("10"), 10)
34 self
.assertEqual(_("foo,bar"), ["foo", "bar"])
36 def test_parse_constraints(self
):
45 _("mem=10G foo=bar,baz"),
46 {"mem": 10 * 1024, "foo": ["bar", "baz"]}