Exemplo n.º 1
0
 def test_get_revision_base_single(self):
     map_ = RevisionMap(lambda: [
         Revision("a", ()),
         Revision("b", ("a", )),
         Revision("c", ("b", )),
     ])
     eq_(map_.get_revision("base"), None)
Exemplo n.º 2
0
 def test_get_revision_head_single(self):
     map_ = RevisionMap(lambda: [
         Revision("a", ()),
         Revision("b", ("a", )),
         Revision("c", ("b", )),
     ])
     eq_(map_.get_revision("head"), map_._revision_map["c"])
Exemplo n.º 3
0
 def test_get_revision_base_single(self):
     map_ = RevisionMap(lambda: [
         Revision('a', ()),
         Revision('b', ('a', )),
         Revision('c', ('b', )),
     ])
     eq_(map_.get_revision('base'), None)
Exemplo n.º 4
0
    def test_invalid_datatype(self):
        map_ = RevisionMap(lambda: [
            Revision("a", ()),
            Revision("b", ("a", )),
            Revision("c", ("b", )),
        ])
        assert_raises_message(
            RevisionError,
            "revision identifier b'12345' is not a string; "
            "ensure database driver settings are correct",
            map_.get_revisions,
            b"12345",
        )

        assert_raises_message(
            RevisionError,
            "revision identifier b'12345' is not a string; "
            "ensure database driver settings are correct",
            map_.get_revision,
            b"12345",
        )

        assert_raises_message(
            RevisionError,
            r"revision identifier \(b'12345',\) is not a string; "
            "ensure database driver settings are correct",
            map_.get_revision,
            (b"12345", ),
        )

        map_.get_revision(("a", ))
        map_.get_revision("a")
Exemplo n.º 5
0
 def test_revision_map_simple_dep_cycle(self):
     map_ = RevisionMap(lambda: [
         Revision("a", (), dependencies="c"),
         Revision("b", "a"),
         Revision("c", "b"),
     ])
     self._assert_raises_revision_map_dep_cycle(map_, ["a", "b", "c"])
Exemplo n.º 6
0
 def test_revision_map_head_dep_loop(self):
     map_ = RevisionMap(lambda: [
         Revision("a", ()),
         Revision("b", "a"),
         Revision("c", "b", dependencies="c"),
     ])
     self._assert_raises_revision_map_dep_loop(map_, "c")
Exemplo n.º 7
0
 def test_revision_map_base_loop(self):
     map_ = RevisionMap(lambda: [
         Revision("a", "a"),
         Revision("b", "a"),
         Revision("c", "b"),
     ])
     self._assert_raises_revision_map_loop(map_, "a")
Exemplo n.º 8
0
    def test_revision_map_no_loop_w_overlapping_substrings_dependencies(self):
        r1 = Revision("user_foo", None)
        r2 = Revision("user", None, dependencies="user_foo")

        self.map = RevisionMap(lambda: [r1, r2])

        self._assert_iteration("heads", None, ["user", "user_foo"])
Exemplo n.º 9
0
 def test_get_revision_head_single(self):
     map_ = RevisionMap(lambda: [
         Revision('a', ()),
         Revision('b', ('a', )),
         Revision('c', ('b', )),
     ])
     eq_(map_.get_revision('head'), map_._revision_map['c'])
Exemplo n.º 10
0
 def test_repr_revs(self):
     map_ = RevisionMap(lambda: [
         Revision('a', ()),
         Revision('b', ('a', )),
         Revision('c', (), dependencies=('a', 'b')),
     ])
     c = map_._revision_map['c']
     eq_(repr(c), "Revision('c', None, dependencies=('a', 'b'))")
Exemplo n.º 11
0
 def test_revision_map_merge_point_dep_loop(self):
     map_ = RevisionMap(lambda: [
         Revision("a", ()),
         Revision("b1", "a"),
         Revision("b2", "a"),
         Revision("c", ("b1", "b2"), dependencies="c"),
     ])
     self._assert_raises_revision_map_dep_loop(map_, "c")
Exemplo n.º 12
0
 def test_revision_map_branch_point_dep_loop(self):
     map_ = RevisionMap(lambda: [
         Revision("a", ()),
         Revision("b", "a", dependencies="b"),
         Revision("c1", "b"),
         Revision("c2", "b"),
     ])
     self._assert_raises_revision_map_dep_loop(map_, "b")
Exemplo n.º 13
0
 def setUp(self):
     self.map = RevisionMap(lambda: [
         Revision('a', ()),
         Revision('b1', ('a', )),
         Revision('b2', ('a', )),
         Revision('c', ('b1', 'b2')),
         Revision('d', ('c', )),
     ])
Exemplo n.º 14
0
 def test_repr_revs(self):
     map_ = RevisionMap(lambda: [
         Revision("a", ()),
         Revision("b", ("a", )),
         Revision("c", (), dependencies=("a", "b")),
     ])
     c = map_._revision_map["c"]
     eq_(repr(c), "Revision('c', None, dependencies=('a', 'b'))")
Exemplo n.º 15
0
 def setUp(self):
     self.map = RevisionMap(lambda: [
         Revision("a", ()),
         Revision("b1", ("a", )),
         Revision("b2", ("a", )),
         Revision("c", ("b1", "b2")),
         Revision("d", ("c", )),
     ])
Exemplo n.º 16
0
 def fn():
     return [
         Revision("a", ()),
         Revision("b", ("a", )),
         Revision("c1", ("b", ), branch_labels="c1branch"),
         Revision("c2", ("b", )),
         Revision("d", ("c1", "c2")),
     ]
Exemplo n.º 17
0
 def setUp(self):
     self.map = RevisionMap(lambda: [
         Revision("base1", ()),
         Revision("a1", "base1"),
         Revision("b1", "a1"),
         Revision("c2", (), dependencies="a1"),
         Revision("c3", "c2"),
     ])
Exemplo n.º 18
0
 def test_get_revision_heads_multiple(self):
     map_ = RevisionMap(lambda: [
         Revision('a', ()),
         Revision('b', ('a', )),
         Revision('c1', ('b', )),
         Revision('c2', ('b', )),
     ])
     assert_raises_message(MultipleHeads, "Multiple heads are present",
                           map_.get_revision, "heads")
Exemplo n.º 19
0
    def test_iterate_tolerates_dupe_targets(self):
        map_ = RevisionMap(lambda: [
            Revision('a', ()),
            Revision('b', ('a', )),
            Revision('c', ('b', )),
        ])

        eq_([r.revision for r in map_._iterate_revisions(('c', 'c'), 'a')],
            ['c', 'b', 'a'])
Exemplo n.º 20
0
 def test_revision_map_upper_simple_cycle(self):
     map_ = RevisionMap(lambda: [
         Revision("a", ()),
         Revision("b", "a"),
         Revision("c", ("b", "e")),
         Revision("d", "c"),
         Revision("e", "d"),
     ])
     self._assert_raises_revision_map_cycle(map_, ["a", "b", "c", "d", "e"])
Exemplo n.º 21
0
    def test_revision_dupe_head(self):
        r1 = Revision("user_foo", None)
        r2 = Revision("user", "user_foo", dependencies="user_foo")

        self.map = RevisionMap(lambda: [r1, r2])

        self._assert_iteration("heads", None, ["user", "user_foo"])

        eq_(self.map._topological_sort([r1, r2], [r2]), ["user", "user_foo"])
Exemplo n.º 22
0
    def test_add_revision_one_head(self):
        map_ = RevisionMap(lambda: [
            Revision("a", ()),
            Revision("b", ("a", )),
            Revision("c", ("b", )),
        ])
        eq_(map_.heads, ("c", ))

        map_.add_revision(Revision("d", ("c", )))
        eq_(map_.heads, ("d", ))
Exemplo n.º 23
0
    def test_add_revision_one_head(self):
        map_ = RevisionMap(lambda: [
            Revision('a', ()),
            Revision('b', ('a', )),
            Revision('c', ('b', )),
        ])
        eq_(map_.heads, ('c', ))

        map_.add_revision(Revision('d', ('c', )))
        eq_(map_.heads, ('d', ))
Exemplo n.º 24
0
    def test_add_revision_two_head(self):
        map_ = RevisionMap(lambda: [
            Revision('a', ()),
            Revision('b', ('a', )),
            Revision('c1', ('b', )),
            Revision('c2', ('b', )),
        ])
        eq_(map_.heads, ('c1', 'c2'))

        map_.add_revision(Revision('d1', ('c1', )))
        eq_(map_.heads, ('c2', 'd1'))
Exemplo n.º 25
0
    def test_add_revision_two_head(self):
        map_ = RevisionMap(lambda: [
            Revision("a", ()),
            Revision("b", ("a", )),
            Revision("c1", ("b", )),
            Revision("c2", ("b", )),
        ])
        eq_(map_.heads, ("c1", "c2"))

        map_.add_revision(Revision("d1", ("c1", )))
        eq_(map_.heads, ("c2", "d1"))
Exemplo n.º 26
0
    def test_iterate_tolerates_dupe_targets(self):
        map_ = RevisionMap(lambda: [
            Revision("a", ()),
            Revision("b", ("a", )),
            Revision("c", ("b", )),
        ])

        eq_(
            [r.revision for r in map_._iterate_revisions(("c", "c"), "a")],
            ["c", "b", "a"],
        )
Exemplo n.º 27
0
 def setUp(self):
     self.map = RevisionMap(lambda: [
         Revision('base1', ()),
         Revision('a1', 'base1'),
         Revision('a2', 'base1'),
         Revision('b1', 'a1'),
         Revision('c1', 'b1'),
     ])
     # intentionally make a broken map
     self.map._revision_map['fake'] = self.map._revision_map['a2']
     self.map._revision_map['b1'].dependencies = 'fake'
     self.map._revision_map['b1']._resolved_dependencies = ('fake', )
Exemplo n.º 28
0
 def setUp(self):
     self.map = RevisionMap(lambda: [
         Revision("base1", ()),
         Revision("a1", "base1"),
         Revision("a2", "base1"),
         Revision("b1", "a1"),
         Revision("c1", "b1"),
     ])
     # intentionally make a broken map
     self.map._revision_map["fake"] = self.map._revision_map["a2"]
     self.map._revision_map["b1"].dependencies = "fake"
     self.map._revision_map["b1"]._resolved_dependencies = ("fake", )
Exemplo n.º 29
0
 def test_get_revision_heads_multiple(self):
     map_ = RevisionMap(lambda: [
         Revision("a", ()),
         Revision("b", ("a", )),
         Revision("c1", ("b", )),
         Revision("c2", ("b", )),
     ])
     assert_raises_message(
         MultipleHeads,
         "Multiple heads are present",
         map_.get_revision,
         "heads",
     )
Exemplo n.º 30
0
 def test_filter_for_lineage_labeled_head_across_merge(self):
     fn = lambda: [
         Revision('a', ()),
         Revision('b', ('a', )),
         Revision('c1', ('b', ), branch_labels='c1branch'),
         Revision('c2', ('b', )),
         Revision('d', ('c1', 'c2')),
     ]
     map_ = RevisionMap(fn)
     c1 = map_.get_revision('c1')
     c2 = map_.get_revision('c2')
     d = map_.get_revision('d')
     eq_(map_.filter_for_lineage([c1, c2, d], "c1branch@head"), [c1, c2, d])