File: test_automethodlist.py

package info (click to toggle)
python-globus-sdk 4.3.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 5,172 kB
  • sloc: python: 35,227; sh: 44; makefile: 35
file content (33 lines) | stat: -rw-r--r-- 1,126 bytes parent folder | download | duplicates (2)
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
from xml.etree import ElementTree

import pytest


def test_automethodlist_requires_an_argument(
    sphinxext, docutils_runner, register_temporary_directive
):

    register_temporary_directive("automethodlist", sphinxext.directives.AutoMethodList)

    with pytest.raises(Exception, match=r"1 argument\(s\) required, 0 supplied\."):
        docutils_runner.to_etree(".. automethodlist::")


# choose an arbitrary object from the SDK and confirm that `automethodlist`
# will render one of its public methods
# for this case, we're using `GlobusApp.login_required()`
def test_automethodlist_of_globus_app_shows_login(sphinx_runner):
    etree = sphinx_runner.to_etree(".. automethodlist:: globus_sdk.GlobusApp")

    assert etree.tag == "document"

    paragraph_element = etree.find("paragraph")
    assert paragraph_element is not None

    emphasized_text = paragraph_element.find("strong")
    assert emphasized_text is not None
    assert emphasized_text.text == "Methods"

    method_list = etree.find("bullet_list")
    assert method_list is not None
    assert b"login_required()" in ElementTree.tostring(method_list)