Exemple #1
0
def test_get_testcase_requirements_single_empty(field_name):
    doctree = _publish(
        textwrap.dedent('''\
    Test Foo
    ********

    :author: [email protected]
    :component: foo
    :{}:
    '''.format(field_name)))
    assert get_testcase_requirements(doctree) == []
Exemple #2
0
def test_get_testcase_requirements_many():
    doctree = _publish(
        textwrap.dedent('''\
    Test Foo
    ********

    :author: [email protected]
    :requirement: FOO-212
    :requirement: FOO-232
    :component: foo
    '''))
    assert get_testcase_requirements(doctree) == ["FOO-212", "FOO-232"]
Exemple #3
0
def test_get_testcase_requirements_list_many(field_name):
    doctree = _publish(
        textwrap.dedent('''\
    Test Foo
    ********

    :author: [email protected]
    :component: foo
    :{}:
      - FOO-212
      - FOO-232
    '''.format(field_name)))
    assert get_testcase_requirements(doctree) == ["FOO-212", "FOO-232"]
Exemple #4
0
def test_get_testcase_requirements_single_url_link(field_name):
    doctree = _publish(
        textwrap.dedent('''\
    Test Foo
    ********

    :author: [email protected]
    :component: foo
    :requirement: https://example.com
    '''.format(field_name)))
    results = get_testcase_requirements(doctree)
    assert len(results) == 1
    # check that we get actual rst node for a link (reference node)
    assert results[0].tagname == "reference"
    assert results[0].astext() == "https://example.com"
Exemple #5
0
def test_get_testcase_requirements_list_many_someemptyitems(field_name):
    doctree = _publish(
        textwrap.dedent('''\
    Test Foo
    ********

    :author: [email protected]
    :component: foo
    :{}:
      -
      - FOO-132
      -
    :requirement: FOO-130
    '''.format(field_name)))
    assert get_testcase_requirements(doctree) == ["FOO-132", "FOO-130"]
Exemple #6
0
def test_get_testcase_requirements_many_list_url_link():
    doctree = _publish(
        textwrap.dedent('''\
    Test Foo
    ********

    :author: [email protected]
    :component: foo
    :requirements:
      - https://example.com/foo
      - https://example.com/bar
    '''))
    results = get_testcase_requirements(doctree)
    assert len(results) == 2
    # check that we get actual rst node for a link (reference node)
    assert results[0].tagname == "reference"
    assert results[1].tagname == "reference"
    # and expected content
    assert results[0].astext() == "https://example.com/foo"
    assert results[1].astext() == "https://example.com/bar"
Exemple #7
0
 def apply(self):
     # sphinx build enviroment instance
     env = self.document.settings.env
     # check if env has the requirements already defined
     if not hasattr(env, 'pylatest_requirements'):
         env.pylatest_requirements = {}
     # add requirements of current doc into reverse index
     requirements = get_testcase_requirements(self.document)
     for req_node in requirements:
         # enforce req_node (rst node) identity based on sheer url for
         # references or plain text representation for other rst nodes
         if req_node.tagname == "reference":
             req_key = req_node['refuri']
         else:
             req_key = req_node.astext()
         # create new empty entry for current requirement (req_node) in
         # env.pylatest_requirements dict if there is no such entry so far
         env.pylatest_requirements.setdefault(req_key, (req_node, set()))
         # add new docname into set of docnames of the requirement's entry
         env.pylatest_requirements[req_key][1].add(env.docname)
Exemple #8
0
def test_get_testcase_requirements_null(empty_doctree):
    assert get_testcase_requirements(empty_doctree) == []