Пример #1
0
    def test_history(self):
        """
        History
        """
        from invenio_upgrader.engine import InvenioUpgrader
        upgrades = dictify([
            TestUpgrade('1', [], 'invenio'),
            TestUpgrade('2', ['1'], 'invenio'),
            TestUpgrade('3', ['1'], 'invenio'),
            TestUpgrade('4', ['2'], 'invenio'),
            TestUpgrade('5', ['3', '4'], 'invenio'),
            TestUpgrade('6', [
                '5',
            ], 'invenio'),
        ])

        history = dictify(['1', '2', '4'], value=1)
        m = InvenioUpgrader()
        self.assertEqual(upgrades_str(m.order_upgrades(upgrades, history)),
                         "[3, 5, 6]")

        history = dictify(['3', '5'], value=1)
        m = InvenioUpgrader()
        self.assertEqual(upgrades_str(m.order_upgrades(upgrades, history)),
                         "[6]")
Пример #2
0
def test_missing_dependency():
    """Missing dependency 0."""
    from invenio_upgrader.engine import InvenioUpgrader
    upgrades = dictify([
        create_upgrade('1', [], 'invenio'),
        create_upgrade('2', ['1'], 'invenio'),
        create_upgrade('3', ['1', '0'], 'invenio'),
    ])

    m = InvenioUpgrader()
    with pytest.raises(Exception):
        m.order_upgrades(upgrades)
Пример #3
0
def test_cycle_graph():
    """Cycle 2, 4, 3."""
    from invenio_upgrader.engine import InvenioUpgrader
    upgrades = dictify([
        create_upgrade('1', [], 'invenio'),
        create_upgrade('2', ['1', '3'], 'invenio'),
        create_upgrade('3', ['1', '4'], 'invenio'),
        create_upgrade('4', ['2'], 'invenio'),
        create_upgrade('5', ['3', '4'], 'invenio'),
        create_upgrade('6', ['5', ], 'invenio'),
    ])

    m = InvenioUpgrader()
    with pytest.raises(Exception):
        m.order_upgrades(upgrades)
Пример #4
0
    def test_two_graphs(self):
        """
        Two independent graphs
        """
        from invenio_upgrader.engine import InvenioUpgrader
        upgrades = dictify([
            TestUpgrade('1', [], 'invenio'),
            TestUpgrade('2', ['1'], 'invenio'),
            TestUpgrade('3', ['1'], 'invenio'),
            TestUpgrade('a', [], 'other'),
            TestUpgrade('b', ['a'], 'other'),
            TestUpgrade('c', ['a'], 'other'),
            TestUpgrade('4', ['2'], 'invenio'),
            TestUpgrade('5', ['3', '4'], 'invenio'),
            TestUpgrade('6', [
                '5',
            ], 'invenio'),
            TestUpgrade('d', ['b'], 'other'),
            TestUpgrade('e', ['c', 'd'], 'other'),
            TestUpgrade('f', [
                'e',
            ], 'other'),
        ])

        m = InvenioUpgrader()
        self.assertEqual(upgrades_str(m.order_upgrades(upgrades)),
                         "[1, 2, 4, 3, 5, 6, a, b, d, c, e, f]")
Пример #5
0
    def test_two_graphs(self):
        """
        Two independent graphs
        """
        from invenio_upgrader.engine import InvenioUpgrader

        upgrades = dictify(
            [
                TestUpgrade("1", [], "invenio"),
                TestUpgrade("2", ["1"], "invenio"),
                TestUpgrade("3", ["1"], "invenio"),
                TestUpgrade("a", [], "other"),
                TestUpgrade("b", ["a"], "other"),
                TestUpgrade("c", ["a"], "other"),
                TestUpgrade("4", ["2"], "invenio"),
                TestUpgrade("5", ["3", "4"], "invenio"),
                TestUpgrade("6", ["5"], "invenio"),
                TestUpgrade("d", ["b"], "other"),
                TestUpgrade("e", ["c", "d"], "other"),
                TestUpgrade("f", ["e"], "other"),
            ]
        )

        m = InvenioUpgrader()
        self.assertEqual(upgrades_str(m.order_upgrades(upgrades)), "[1, 2, 4, 3, 5, 6, a, b, d, c, e, f]")
Пример #6
0
def test_cross_graph_dependency():
    """Missing dependency 0."""
    from invenio_upgrader.engine import InvenioUpgrader
    upgrades = dictify([
        create_upgrade('1', [], 'invenio'),
        create_upgrade('2', ['1'], 'invenio'),
        create_upgrade('3', ['1', 'b'], 'invenio'),
        create_upgrade('a', [], 'other'),
        create_upgrade('b', ['a'], 'other'),
        create_upgrade('c', ['2'], 'other'),
    ])

    m = InvenioUpgrader()
    # self.assertRaises(Exception, m.order_upgrades, upgrades)
    assert upgrades_str(m.order_upgrades(upgrades)) in [
        "[1, 2, c, a, b, 3]",
        "[1, 2, a, c, b, 3]",
        "[1, 2, a, b, c, 3]",
        "[1, 2, a, b, 3, c]",
        "[1, a, 2, b, c, 3]",
        "[1, a, 2, b, 3, c]",
        "[1, a, 2, c, b, 3]",
        "[1, a, b, 2, c, 3]",
        "[1, a, b, 2, 3, c]",
        "[1, a, b, 3, 2, c]",
        "[a, 1, 2, c, b, 3]",
        "[a, 1, 2, b, c, 3]",
        "[a, 1, 2, b, 3, c]",
        "[a, 1, b, 3, 2, c]",
        "[a, 1, b, 2, 3, c]",
        "[a, 1, b, 2, c, 3]",
        "[a, b, 1, 3, 2, c]",
        "[a, b, 1, 2, c, 3]",
        "[a, b, 1, 2, 3, c]"
    ]
Пример #7
0
    def test_two_graphs(self):
        """
        Two independent graphs
        """
        from invenio_upgrader.engine import InvenioUpgrader
        upgrades = dictify([
            TestUpgrade('1', [], 'invenio'),
            TestUpgrade('2', ['1'], 'invenio'),
            TestUpgrade('3', ['1'], 'invenio'),

            TestUpgrade('a', [], 'other'),
            TestUpgrade('b', ['a'], 'other'),
            TestUpgrade('c', ['a'], 'other'),

            TestUpgrade('4', ['2'], 'invenio'),
            TestUpgrade('5', ['3', '4'], 'invenio'),
            TestUpgrade('6', ['5', ], 'invenio'),

            TestUpgrade('d', ['b'], 'other'),
            TestUpgrade('e', ['c', 'd'], 'other'),
            TestUpgrade('f', ['e', ], 'other'),
        ])

        m = InvenioUpgrader()
        self.assertEqual(upgrades_str(m.order_upgrades(upgrades)),
                         "[1, 2, 4, 3, 5, 6, a, b, d, c, e, f]")
Пример #8
0
def test_history():
    """History."""
    from invenio_upgrader.engine import InvenioUpgrader
    upgrades = dictify([
        create_upgrade('1', [], 'invenio'),
        create_upgrade('2', ['1'], 'invenio'),
        create_upgrade('3', ['1'], 'invenio'),
        create_upgrade('4', ['2'], 'invenio'),
        create_upgrade('5', ['3', '4'], 'invenio'),
        create_upgrade('6', ['5', ], 'invenio'),
    ])

    history = dictify(['1', '2', '4'], value=1)
    m = InvenioUpgrader()
    assert upgrades_str(m.order_upgrades(upgrades, history)) == "[3, 5, 6]"

    history = dictify(['3', '5'], value=1)
    m = InvenioUpgrader()
    assert upgrades_str(m.order_upgrades(upgrades, history)) == "[6]"
Пример #9
0
    def test_history(self):
        """
        History
        """
        from invenio_upgrader.engine import InvenioUpgrader
        upgrades = dictify([
            TestUpgrade('1', [], 'invenio'),
            TestUpgrade('2', ['1'], 'invenio'),
            TestUpgrade('3', ['1'], 'invenio'),
            TestUpgrade('4', ['2'], 'invenio'),
            TestUpgrade('5', ['3', '4'], 'invenio'),
            TestUpgrade('6', ['5', ], 'invenio'),
        ])

        history = dictify(['1', '2', '4'], value=1)
        m = InvenioUpgrader()
        self.assertEqual(upgrades_str(m.order_upgrades(upgrades, history)),
                         "[3, 5, 6]")

        history = dictify(['3', '5'], value=1)
        m = InvenioUpgrader()
        self.assertEqual(
            upgrades_str(m.order_upgrades(upgrades, history)), "[6]")
Пример #10
0
    def test_history(self):
        """
        History
        """
        from invenio_upgrader.engine import InvenioUpgrader

        upgrades = dictify(
            [
                TestUpgrade("1", [], "invenio"),
                TestUpgrade("2", ["1"], "invenio"),
                TestUpgrade("3", ["1"], "invenio"),
                TestUpgrade("4", ["2"], "invenio"),
                TestUpgrade("5", ["3", "4"], "invenio"),
                TestUpgrade("6", ["5"], "invenio"),
            ]
        )

        history = dictify(["1", "2", "4"], value=1)
        m = InvenioUpgrader()
        self.assertEqual(upgrades_str(m.order_upgrades(upgrades, history)), "[3, 5, 6]")

        history = dictify(["3", "5"], value=1)
        m = InvenioUpgrader()
        self.assertEqual(upgrades_str(m.order_upgrades(upgrades, history)), "[6]")
Пример #11
0
def test_normal_graph():
    """Normal dependency graph."""
    from invenio_upgrader.engine import InvenioUpgrader
    upgrades = dictify([
        create_upgrade('1', [], 'invenio'),
        create_upgrade('2', ['1'], 'invenio'),
        create_upgrade('3', ['1'], 'invenio'),
        create_upgrade('4', ['2'], 'invenio'),
        create_upgrade('5', ['3', '4'], 'invenio'),
        create_upgrade('6', ['5', ], 'invenio'),
    ])
    m = InvenioUpgrader()
    assert upgrades_str(m.order_upgrades(upgrades)) in [
        "[1, 2, 3, 4, 5, 6]",
        "[1, 2, 4, 3, 5, 6]",
        "[1, 3, 2, 4, 5, 6]",
    ]
Пример #12
0
    def test_normal(self):
        """
        Normal dependency graph
        """
        from invenio_upgrader.engine import InvenioUpgrader
        upgrades = dictify([
            TestUpgrade('1', [], 'invenio'),
            TestUpgrade('2', ['1'], 'invenio'),
            TestUpgrade('3', ['1'], 'invenio'),
            TestUpgrade('4', ['2'], 'invenio'),
            TestUpgrade('5', ['3', '4'], 'invenio'),
            TestUpgrade('6', ['5', ], 'invenio'),
        ])

        m = InvenioUpgrader()
        self.assertEqual(upgrades_str(m.order_upgrades(upgrades)),
                         "[1, 2, 4, 3, 5, 6]")
Пример #13
0
    def test_cross_graph_dependency(self):
        """
        Missing dependency 0
        """
        from invenio_upgrader.engine import InvenioUpgrader
        upgrades = dictify([
            TestUpgrade('1', [], 'invenio'),
            TestUpgrade('2', ['1'], 'invenio'),
            TestUpgrade('3', ['1', 'b'], 'invenio'),
            TestUpgrade('a', [], 'other'),
            TestUpgrade('b', ['a'], 'other'),
            TestUpgrade('c', ['2'], 'other'),
        ])

        m = InvenioUpgrader()
        #self.assertRaises(StandardError, m.order_upgrades, upgrades)
        self.assertEqual(upgrades_str(m.order_upgrades(upgrades)),
                         "[1, 2, c, a, b, 3]")
Пример #14
0
    def test_cross_graph_dependency(self):
        """
        Missing dependency 0
        """
        from invenio_upgrader.engine import InvenioUpgrader
        upgrades = dictify([
            TestUpgrade('1', [], 'invenio'),
            TestUpgrade('2', ['1'], 'invenio'),
            TestUpgrade('3', ['1', 'b'], 'invenio'),
            TestUpgrade('a', [], 'other'),
            TestUpgrade('b', ['a'], 'other'),
            TestUpgrade('c', ['2'], 'other'),
        ])

        m = InvenioUpgrader()
        #self.assertRaises(StandardError, m.order_upgrades, upgrades)
        self.assertEqual(upgrades_str(m.order_upgrades(upgrades)),
                         "[1, 2, c, a, b, 3]")
Пример #15
0
    def test_normal(self):
        """
        Normal dependency graph
        """
        from invenio_upgrader.engine import InvenioUpgrader

        upgrades = dictify(
            [
                TestUpgrade("1", [], "invenio"),
                TestUpgrade("2", ["1"], "invenio"),
                TestUpgrade("3", ["1"], "invenio"),
                TestUpgrade("4", ["2"], "invenio"),
                TestUpgrade("5", ["3", "4"], "invenio"),
                TestUpgrade("6", ["5"], "invenio"),
            ]
        )

        m = InvenioUpgrader()
        self.assertEqual(upgrades_str(m.order_upgrades(upgrades)), "[1, 2, 4, 3, 5, 6]")
Пример #16
0
    def test_normal(self):
        """
        Normal dependency graph
        """
        from invenio_upgrader.engine import InvenioUpgrader
        upgrades = dictify([
            TestUpgrade('1', [], 'invenio'),
            TestUpgrade('2', ['1'], 'invenio'),
            TestUpgrade('3', ['1'], 'invenio'),
            TestUpgrade('4', ['2'], 'invenio'),
            TestUpgrade('5', ['3', '4'], 'invenio'),
            TestUpgrade('6', [
                '5',
            ], 'invenio'),
        ])

        m = InvenioUpgrader()
        self.assertEqual(upgrades_str(m.order_upgrades(upgrades)),
                         "[1, 2, 4, 3, 5, 6]")
Пример #17
0
def test_two_graphs_graphs():
    """Two independent graphs."""
    from invenio_upgrader.engine import InvenioUpgrader
    upgrades = dictify([
        create_upgrade('1', [], 'invenio'),
        create_upgrade('2', ['1'], 'invenio'),
        create_upgrade('3', ['1'], 'invenio'),

        create_upgrade('a', [], 'other'),
        create_upgrade('b', ['a'], 'other'),
        create_upgrade('c', ['a'], 'other'),

        create_upgrade('4', ['2'], 'invenio'),
        create_upgrade('5', ['3', '4'], 'invenio'),
        create_upgrade('6', ['5', ], 'invenio'),

        create_upgrade('d', ['b'], 'other'),
        create_upgrade('e', ['c', 'd'], 'other'),
        create_upgrade('f', ['e', ], 'other'),
    ])

    m = InvenioUpgrader()
    assert upgrades_str(m.order_upgrades(upgrades)) in [
        "[1, 2, 4, 3, 5, 6, a, b, d, c, e, f]",
        "[1, 2, 4, 3, 5, 6, a, b, c, d, e, f]",
        "[1, 2, 4, 3, 5, 6, a, c, b, d, e, f]",
        "[1, 2, 3, 4, 5, 6, a, b, d, c, e, f]",
        "[1, 2, 3, 4, 5, 6, a, b, c, d, e, f]",
        "[1, 2, 3, 4, 5, 6, a, c, b, d, e, f]",
        "[1, 3, 2, 4, 5, 6, a, b, d, c, e, f]",
        "[1, 3, 2, 4, 5, 6, a, b, c, d, e, f]",
        "[1, 3, 2, 4, 5, 6, a, c, b, d, e, f]",
        "[a, b, d, c, e, f, 1, 2, 4, 3, 5, 6]",
        "[a, b, c, d, e, f, 1, 2, 4, 3, 5, 6]",
        "[a, c, b, d, e, f, 1, 2, 4, 3, 5, 6]",
        "[a, b, d, c, e, f, 1, 2, 3, 4, 5, 6]",
        "[a, b, c, d, e, f, 1, 2, 3, 4, 5, 6]",
        "[a, c, b, d, e, f, 1, 2, 3, 4, 5, 6]",
        "[a, b, d, c, e, f, 1, 3, 2, 4, 5, 6]",
        "[a, b, c, d, e, f, 1, 3, 2, 4, 5, 6]",
        "[a, c, b, d, e, f, 1, 3, 2, 4, 5, 6]",
        ]
Пример #18
0
    def test_cross_graph_dependency(self):
        """
        Missing dependency 0
        """
        from invenio_upgrader.engine import InvenioUpgrader

        upgrades = dictify(
            [
                TestUpgrade("1", [], "invenio"),
                TestUpgrade("2", ["1"], "invenio"),
                TestUpgrade("3", ["1", "b"], "invenio"),
                TestUpgrade("a", [], "other"),
                TestUpgrade("b", ["a"], "other"),
                TestUpgrade("c", ["2"], "other"),
            ]
        )

        m = InvenioUpgrader()
        # self.assertRaises(StandardError, m.order_upgrades, upgrades)
        self.assertEqual(upgrades_str(m.order_upgrades(upgrades)), "[1, 2, c, a, b, 3]")