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_normalize_list_val(self
):
38 _
= constraints
.normalize_list_value
40 self
.assertEqual(_("foo"), ["foo"])
41 self
.assertEqual(_("foo,bar"), ["foo", "bar"])
43 def test_parse_constraints(self
):
52 _("mem=10G foo=bar,baz tags=tag1 spaces=space1,space2"),
56 "spaces": ["space1", "space2"]}