Ejemplo n.º 1
0
def test_caching_virtual_file():
    with tempdir():
        runner1 = Runner()
        doc1 = Doc("abc.txt|dexy",
                contents = "these are the contents",
                runner=runner1)
        runner1.docs = [doc1]
        runner1.run()

        assert isinstance(doc1.artifacts[0], InitialVirtualArtifact)
        hashstring_0_1 = doc1.artifacts[0].hashstring

        assert isinstance(doc1.artifacts[1], FilterArtifact)
        hashstring_1_1 = doc1.artifacts[1].hashstring

        runner2 = Runner()
        doc2 = Doc(
                "abc.txt|dexy",
                contents = "these are the contents",
                runner=runner2)
        runner2.docs = [doc2]
        runner2.run()

        assert isinstance(doc2.artifacts[0], InitialVirtualArtifact)
        hashstring_0_2 = doc2.artifacts[0].hashstring

        assert isinstance(doc2.artifacts[1], FilterArtifact)
        hashstring_1_2 = doc2.artifacts[1].hashstring

        assert hashstring_0_1 == hashstring_0_2
        assert hashstring_1_1 == hashstring_1_2
Ejemplo n.º 2
0
def test_caching():
    with tempdir():
        runner1 = Runner()

        with open("abc.txt", "w") as f:
            f.write("these are the contents")

        doc1 = Doc("abc.txt|dexy", runner=runner1)
        runner1.docs = [doc1]
        runner1.run()

        assert isinstance(doc1.artifacts[0], InitialArtifact)
        hashstring_0_1 = doc1.artifacts[0].hashstring

        assert isinstance(doc1.artifacts[1], FilterArtifact)
        hashstring_1_1 = doc1.artifacts[1].hashstring

        runner2 = Runner()
        doc2 = Doc("abc.txt|dexy", runner=runner2)
        runner2.docs = [doc2]
        runner2.run()

        assert isinstance(doc2.artifacts[0], InitialArtifact)
        hashstring_0_2 = doc2.artifacts[0].hashstring

        assert isinstance(doc2.artifacts[1], FilterArtifact)
        hashstring_1_2 = doc2.artifacts[1].hashstring

        assert hashstring_0_1 == hashstring_0_2
        assert hashstring_1_1 == hashstring_1_2
Ejemplo n.º 3
0
def test_caching_virtual_file():
    with tempdir():
        runner1 = Runner()
        doc1 = Doc("abc.txt|dexy",
                   contents="these are the contents",
                   runner=runner1)
        runner1.docs = [doc1]
        runner1.run()

        assert isinstance(doc1.artifacts[0], InitialVirtualArtifact)
        hashstring_0_1 = doc1.artifacts[0].hashstring

        assert isinstance(doc1.artifacts[1], FilterArtifact)
        hashstring_1_1 = doc1.artifacts[1].hashstring

        runner2 = Runner()
        doc2 = Doc("abc.txt|dexy",
                   contents="these are the contents",
                   runner=runner2)
        runner2.docs = [doc2]
        runner2.run()

        assert isinstance(doc2.artifacts[0], InitialVirtualArtifact)
        hashstring_0_2 = doc2.artifacts[0].hashstring

        assert isinstance(doc2.artifacts[1], FilterArtifact)
        hashstring_1_2 = doc2.artifacts[1].hashstring

        assert hashstring_0_1 == hashstring_0_2
        assert hashstring_1_1 == hashstring_1_2
Ejemplo n.º 4
0
def test_caching():
    with tempdir():
        runner1 = Runner()

        with open("abc.txt", "w") as f:
            f.write("these are the contents")

        doc1 = Doc("abc.txt|dexy", runner=runner1)
        runner1.docs = [doc1]
        runner1.run()

        assert isinstance(doc1.artifacts[0], InitialArtifact)
        hashstring_0_1 = doc1.artifacts[0].hashstring

        assert isinstance(doc1.artifacts[1], FilterArtifact)
        hashstring_1_1 = doc1.artifacts[1].hashstring

        runner2 = Runner()
        doc2 = Doc("abc.txt|dexy", runner=runner2)
        runner2.docs = [doc2]
        runner2.run()

        assert isinstance(doc2.artifacts[0], InitialArtifact)
        hashstring_0_2 = doc2.artifacts[0].hashstring

        assert isinstance(doc2.artifacts[1], FilterArtifact)
        hashstring_1_2 = doc2.artifacts[1].hashstring

        assert hashstring_0_1 == hashstring_0_2
        assert hashstring_1_1 == hashstring_1_2
Ejemplo n.º 5
0
def test_run_demo_single():
    with divert_stdout() as stdout:
        runner = Runner()
        doc = SubclassTask("demo", runner=runner)

        runner.docs = [doc]
        runner.run()

        assert "pre 'demo' run 'demo' post 'demo'" == stdout.getvalue()
Ejemplo n.º 6
0
def test_add_new_subtask():
    with divert_stdout() as stdout:
        runner = Runner()
        t1 = AddNewSubtask("parent", runner=runner)

        runner.docs = [t1]
        runner.run()

        assert stdout.getvalue() == "pre 'new' run 'new' post 'new'"
Ejemplo n.º 7
0
def test_runner_run():
    with tempdir():
        runner = Runner()
        runner.setup_dexy_dirs()
        d1 = Doc("abc.txt|outputabc", contents="these are the contents", runner=runner)
        d2 = Doc("hello.txt|outputabc", contents="these are more contents", runner=runner)
        assert d1.state == 'setup'
        assert d2.state == 'setup'
        runner.docs = [d1, d2]
        runner.run()
        assert d1.state == 'complete'
        assert d2.state == 'complete'
Ejemplo n.º 8
0
def test_run_demo_parent_child():
    with divert_stdout() as stdout:
        runner = Runner()
        doc = SubclassTask(
                    "parent",
                    SubclassTask("child", runner=runner),
                    runner=runner
                )

        runner.docs = [doc]
        runner.run()

        assert "pre 'parent' pre 'child' run 'child' post 'child' run 'parent' post 'parent'" == stdout.getvalue()
Ejemplo n.º 9
0
def test_dependencies_only_run_once():
    with divert_stdout() as stdout:
        runner = Runner()

        t1 = SubclassTask("1", runner=runner)
        t2 = SubclassTask("2", t1, runner=runner)
        t3 = SubclassTask("3", t1, runner=runner)

        runner.docs = [t1, t2, t3]
        runner.run()

        assert stdout.getvalue() == "pre '1' run '1' post '1' pre '2' run '2' post '2' pre '3' run '3' post '3'"

        assert len(t1.completed_children) == 0
        assert t1 in t2.completed_children.values()
        assert t1 in t3.completed_children.values()
Ejemplo n.º 10
0
def test_runner_run():
    with tempdir():
        runner = Runner()
        runner.setup_dexy_dirs()
        d1 = Doc("abc.txt|outputabc",
                 contents="these are the contents",
                 runner=runner)
        d2 = Doc("hello.txt|outputabc",
                 contents="these are more contents",
                 runner=runner)
        assert d1.state == 'setup'
        assert d2.state == 'setup'
        runner.docs = [d1, d2]
        runner.run()
        assert d1.state == 'complete'
        assert d2.state == 'complete'