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")
26 def test_normalize_val(self
):
27 _
= constraints
.normalize_value
29 self
.assertEqual(_("10G"), 10 * 1024)
30 self
.assertEqual(_("10M"), 10)
31 self
.assertEqual(_("10"), "10")
32 self
.assertEqual(_("foo,bar"), ["foo", "bar"])
34 def test_parse_constraints(self
):
43 _("mem=10G foo=bar,baz"),
44 {"mem": 10 * 1024, "foo": ["bar", "baz"]}