Example #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)
Example #2
0
    def setUp(self):
        """
        Structure::

            base1 -----> a1a  -> b1a
                  +----> a1b  -> b1b
                                  |
                      +-----------+
                      |
                      v
            base3 -> a3 -> b3
                      ^
                      |
                      +-----------+
                                  |
            base2 -> a2 -> b2 -> c2 -> d2

        """
        self.map = RevisionMap(lambda: [
            Revision("base1", (), branch_labels="b_1"),
            Revision("a1a", ("base1", )),
            Revision("a1b", ("base1", )),
            Revision("b1a", ("a1a", )),
            Revision("b1b", ("a1b", ), dependencies="a3"),
            Revision("base2", (), branch_labels="b_2"),
            Revision("a2", ("base2", )),
            Revision("b2", ("a2", )),
            Revision("c2", ("b2", ), dependencies="a3"),
            Revision("d2", ("c2", )),
            Revision("base3", (), branch_labels="b_3"),
            Revision("a3", ("base3", )),
            Revision("b3", ("a3", )),
        ])
Example #3
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")
Example #4
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")
Example #5
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"])
Example #6
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")
Example #7
0
 def test_revision_map_solitary_loop(self):
     map_ = RevisionMap(
         lambda: [
             Revision("a", "a"),
         ]
     )
     self._assert_raises_revision_map_loop(map_, "a")
Example #8
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)
Example #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"])
Example #10
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'])
Example #11
0
 def test_revision_map_solitary_dependency_loop(self):
     map_ = RevisionMap(
         lambda: [
             Revision("a", (), dependencies="a"),
         ]
     )
     self._assert_raises_revision_map_dep_loop(map_, "a")
Example #12
0
    def setUp(self):
        """

        base1 -----> a1a  -> b1a
              +----> a1b  -> b1b
                              |
                  +-----------+
                  |
                  v
        base3 -> a3 -> b3
                  ^
                  |
                  +-----------+
                              |
        base2 -> a2 -> b2 -> c2 -> d2


        """
        self.map = RevisionMap(lambda: [
            Revision('base1', (), branch_labels='b_1'),
            Revision('a1a', ('base1', )),
            Revision('a1b', ('base1', )),
            Revision('b1a', ('a1a', )),
            Revision('b1b', ('a1b', ), dependencies='a3'),
            Revision('base2', (), branch_labels='b_2'),
            Revision('a2', ('base2', )),
            Revision('b2', ('a2', )),
            Revision('c2', ('b2', ), dependencies='a3'),
            Revision('d2', ('c2', )),
            Revision('base3', (), branch_labels='b_3'),
            Revision('a3', ('base3', )),
            Revision('b3', ('a3', )),
        ])
Example #13
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"])
Example #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'))")
Example #15
0
 def setUp(self):
     self.map = RevisionMap(lambda: [
         Revision("a", ()),
         Revision("b1", ("a", )),
         Revision("b2", ("a", )),
         Revision("c", ("b1", "b2")),
         Revision("d", ("c", )),
     ])
Example #16
0
 def setUp(self):
     self.map = RevisionMap(lambda: [
         Revision("base1", ()),
         Revision("a1", "base1"),
         Revision("b1", "a1"),
         Revision("c2", (), dependencies="a1"),
         Revision("c3", "c2"),
     ])
Example #17
0
 def setUp(self):
     self.map = RevisionMap(lambda: [
         Revision('a', ()),
         Revision('b1', ('a', )),
         Revision('b2', ('a', )),
         Revision('c', ('b1', 'b2')),
         Revision('d', ('c', )),
     ])
Example #18
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'))")
Example #19
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")
Example #20
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")
Example #21
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'])
Example #22
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"])
Example #23
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")
Example #24
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"])
Example #25
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', ))
Example #26
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", ))
Example #27
0
 def setUp(self):
     self.map = RevisionMap(lambda: [
         Revision('a', (), branch_labels='abranch'),
         Revision('b', ('a',)),
         Revision('somelongername', ('b',)),
         Revision('c', ('somelongername',)),
         Revision('d', ()),
         Revision('e', ('d',), branch_labels=['ebranch']),
         Revision('someothername', ('e',)),
         Revision('f', ('someothername',)),
     ])
Example #28
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"))
Example #29
0
 def setUp(self):
     self.map = RevisionMap(lambda: [
         Revision("a", (), branch_labels="abranch"),
         Revision("b", ("a", )),
         Revision("somelongername", ("b", )),
         Revision("c", ("somelongername", )),
         Revision("d", ()),
         Revision("e", ("d", ), branch_labels=["ebranch"]),
         Revision("someothername", ("e", )),
         Revision("f", ("someothername", )),
     ])
Example #30
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"],
        )