File: test_integration.py

package info (click to toggle)
daps 3.3.2%2Bcleaned1-7
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 5,540 kB
  • sloc: xml: 9,773; sh: 3,059; python: 1,322; lisp: 380; makefile: 239
file content (35 lines) | stat: -rw-r--r-- 1,189 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import pytest
import py

# "gen" is the abbreviated name for "getentityname.py"
import gen

DATADIR=py.path.local(__file__).dirpath().join("data")
XMLFILES=DATADIR.listdir("*.xml", sort=True)
OUTFILES=(f.new(ext=".out") for f in XMLFILES)
# CATALOGFILES=DATADIR.listdir("*.", sort=True)


@pytest.mark.parametrize("xmlfile, outfile",
    zip(XMLFILES, OUTFILES),
    ids=lambda path: path.basename,
)
def test_xml_and_output(xmlfile, outfile, capsys):
    DIRNAME = py.path.local(xmlfile.dirname)

    # First we check for consistency if the .out file is there
    assert outfile.exists()
    # We read our data and convert it into a set.
    # We are only interested in the content, not the order.
    # That way, the order doesn't matter.
    # Furthermore, any empty string ("") are skipped (see the if clause
    # inside the list comprehension)
    outdata = outfile.read().strip().split(" ")
    outdata = [DATADIR / f for f in outdata if f]

    result = gen.main([xmlfile.strpath])
    assert result == 0

    captured = capsys.readouterr().out.strip().split(" ")
    captured = [DATADIR / py.path.local(f).basename for f in captured if f]
    assert set(captured) == set(outdata)