File: test_file_reqs.py

package info (click to toggle)
fades 9.0.2-2
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 9,448 kB
  • sloc: python: 3,924; makefile: 174; sh: 15
file content (59 lines) | stat: -rw-r--r-- 2,047 bytes parent folder | download
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
"""Check the requirements parsing from a reqs.txt file."""
import os

from fades import parsing, REPO_PYPI

from tests import get_reqs


def test_requirement_files(create_tmpfile):
    parsed = parsing.parse_reqfile(create_tmpfile(['foo']))
    assert parsed == {REPO_PYPI: get_reqs('foo')}


def test_nested_requirement_files(create_tmpfile):
    requirement_file = create_tmpfile(['foo'])
    requirement_file_nested = create_tmpfile(
        ['bar\n-r {}'.format(requirement_file)]
    )
    parsed = parsing.parse_reqfile(requirement_file_nested)

    assert parsed == {REPO_PYPI: get_reqs('bar', 'foo')}


def test_nested_requirement_files_invalid_format(logs, create_tmpfile):
    requirement_file_nested = create_tmpfile(['foo\n-r'])
    parsed = parsing.parse_reqfile(requirement_file_nested)

    assert parsed == {REPO_PYPI: get_reqs('foo')}
    assert "Invalid format to indicate a nested requirements file:" in logs.warning


def test_nested_requirement_files_not_pwd(create_tmpfile):
    requirement_file = create_tmpfile(['foo'])
    fname = os.path.basename(requirement_file)
    requirement_file_nested = create_tmpfile(
        ['bar\n-r {}'.format(fname)])
    parsed = parsing.parse_reqfile(requirement_file_nested)

    assert parsed, {REPO_PYPI: get_reqs('bar', 'foo')}


def test_nested_requirement_files_first_line(create_tmpfile):
    requirement_file = create_tmpfile(['foo'])
    requirement_file_nested = create_tmpfile(
        ['\n-r {}\nbar'.format(requirement_file)])
    parsed = parsing.parse_reqfile(requirement_file_nested)

    assert parsed == {REPO_PYPI: get_reqs('foo', 'bar')}


def test_two_nested_requirement_files(create_tmpfile):
    requirement_file = create_tmpfile(['foo'])
    requirement_file_nested1 = create_tmpfile(
        ['bar\n-r {}'.format(requirement_file)])
    requirement_file_nested2 = create_tmpfile(
        ['baz\n-r {}'.format(requirement_file_nested1)])
    parsed = parsing.parse_reqfile(requirement_file_nested2)

    assert parsed == {REPO_PYPI: get_reqs('baz', 'bar', 'foo')}