Coverage for tests/test_tyora.py: 100%
28 statements
« prev ^ index » next coverage.py v7.5.1, created at 2024-05-24 13:46 -0400
« prev ^ index » next coverage.py v7.5.1, created at 2024-05-24 13:46 -0400
1import pytest
2from tyora import tyora
5def test_parse_args_missing_args() -> None:
6 with pytest.raises(SystemExit):
7 tyora.parse_args()
10def test_parse_args_command() -> None:
11 args = tyora.parse_args(["list"])
12 assert args.cmd == "list"
15class TestFindLink:
16 valid_html = (
17 "<html><body>"
18 '<a href="somelink" class="someclass">sometext</a>'
19 "</body></html>"
20 )
21 invalid_html = "<html><body>No links here</body></html>"
22 valid_xpath = './/a[@class="someclass"]'
23 invalid_xpath = './/a[@class="somethingelse"]'
24 valid_return = {"href": "somelink", "text": "sometext"}
26 def test_find_link_success(self) -> None:
27 assert tyora.find_link(self.valid_html, self.valid_xpath) == self.valid_return
29 def test_find_link_bad_xpath(self) -> None:
30 assert tyora.find_link(self.valid_html, self.invalid_xpath) == {}
32 def test_find_link_bad_html(self) -> None:
33 assert tyora.find_link(self.invalid_html, self.valid_xpath) == {}
36class TestParseForm:
37 valid_html = (
38 '<html><body><form action="someaction">'
39 '<input name="somename" value="somevalue">sometext</input>'
40 "</form></body></html>"
41 )
42 noform_html = "<html><body>No form here</body></html>"
43 noinput_html = (
44 '<html><body><form action="someaction">Nothing here</form></body></html>'
45 )
48# TODO: functions that use user input or read or write files
49def test_create_config() -> None: ...
52def test_write_config() -> None: ...
55def test_read_config() -> None: ...
58def test_get_cookiejar() -> None: ...