def test_merge_rules_first_wins(self):
        tt = {"foo1": "whee"}

        merge_rules(self.base, tt)

        self.assertEquals(4, len(self.base))
        self.assertEquals("bar", self.base["foo1"])
    def test_merge_rules_first_wins(self):
        tt = {"foo1": "whee"}

        merge_rules(self.base, tt)

        self.assertEquals(4, len(self.base))
        self.assertEquals("bar", self.base["foo1"])
    def test_merge_rules_dict(self):
        tt = {"foo2": {1: 2, 3: 3}}

        merge_rules(self.base, tt)

        self.assertEquals(3, len(self.base["foo2"]))
        self.assertIn(3, self.base["foo2"])
        self.assertEquals(1, self.base["foo2"][1])  # doesn't override
    def test_merge_rules_dict(self):
        tt = {"foo2": {1: 2, 3: 3}}

        merge_rules(self.base, tt)

        self.assertEquals(3, len(self.base["foo2"]))
        self.assertIn(3, self.base["foo2"])
        self.assertEquals(1, self.base["foo2"][1])  # doesn't override
    def test_merge_rules_list(self):
        tt = {"foo3": {1: 1}, "foo4": [6]}

        merge_rules(self.base, tt)

        self.assertEquals(4, len(self.base))
        self.assertIn({1: 1}, self.base["foo3"])
        self.assertEquals(4, len(self.base["foo3"]))
        self.assertIn(6, self.base["foo4"])
        self.assertEquals(3, len(self.base["foo4"]))
    def test_merge_rules_list(self):
        tt = {"foo3": {1: 1}, "foo4": [6]}

        merge_rules(self.base, tt)

        self.assertEquals(4, len(self.base))
        self.assertIn({1: 1}, self.base["foo3"])
        self.assertEquals(4, len(self.base["foo3"]))
        self.assertIn(6, self.base["foo4"])
        self.assertEquals(3, len(self.base["foo4"]))
    def test_merge_rules_simple(self):
        simple = {"foo5": "bar"}

        merge_rules(self.base, simple)

        self.assertEquals(5, len(self.base))
    def test_merge_rules_simple(self):
        simple = {"foo5": "bar"}

        merge_rules(self.base, simple)

        self.assertEquals(5, len(self.base))