cleantoots/tests/test_cli.py

74 lines
2.7 KiB
Python
Raw Normal View History

2019-12-28 00:37:19 +01:00
import os
2019-12-27 22:33:39 +01:00
import unittest
2019-12-28 00:37:19 +01:00
from click.testing import CliRunner
2019-12-27 22:33:39 +01:00
2019-12-28 00:37:19 +01:00
from cleantoots.main import cli
class SetupConfigTestCase(unittest.TestCase):
def setUp(self) -> None:
self.runner = CliRunner()
def test_setup_config(self):
with self.runner.isolated_filesystem():
2019-12-28 10:42:02 +01:00
result = self.runner.invoke(cli, ["-d", ".", "config", "setup"])
2019-12-28 13:31:34 +01:00
self.assertEqual(0, result.exit_code)
2019-12-28 00:37:19 +01:00
self.assertIn("config.ini written", result.output)
self.assertTrue(os.path.isfile(os.path.join(".", "config.ini")))
def test_setup_config_twice_fails(self):
with self.runner.isolated_filesystem():
2019-12-28 10:42:02 +01:00
self.runner.invoke(cli, ["-d", ".", "config", "setup"])
2019-12-28 00:37:19 +01:00
self.assertTrue(os.path.isfile(os.path.join(".", "config.ini")))
2019-12-28 10:42:02 +01:00
result = self.runner.invoke(cli, ["-d", ".", "config", "setup"])
2019-12-28 13:31:34 +01:00
self.assertEqual(0, result.exit_code)
2019-12-28 00:37:19 +01:00
self.assertIn("Not touching anything", result.output)
2019-12-28 10:42:02 +01:00
self.assertIn("cleantoots config edit", result.output)
2019-12-28 00:37:19 +01:00
def test_config_output(self):
with self.runner.isolated_filesystem():
2019-12-28 10:42:02 +01:00
self.runner.invoke(cli, ["-d", ".", "config", "setup"])
result = self.runner.invoke(cli, ["-d", ".", "config", "list"])
2019-12-28 00:37:19 +01:00
expected = [
"Mastodon.social",
"api_base_url",
"app_secret_file",
"user_secret_file",
"protected_toots",
"boost_limit",
"favorite_limit",
"days_count",
"timezone",
]
for exp in expected:
self.assertIn(exp, result.output)
2019-12-28 10:42:02 +01:00
def test_config_list_no_file(self):
with self.runner.isolated_filesystem():
result = self.runner.invoke(cli, ["-d", ".", "config", "list"])
self.assertIn("cleantoots config setup", result.output)
self.assertEqual(0, result.exit_code)
def test_config_edit_no_file(self):
with self.runner.isolated_filesystem():
result = self.runner.invoke(cli, ["-d", ".", "config", "edit"])
self.assertIn("cleantoots config setup", result.output)
self.assertEqual(0, result.exit_code)
2019-12-28 00:37:19 +01:00
def test_login_output(self):
with self.runner.isolated_filesystem():
2019-12-28 10:42:02 +01:00
self.runner.invoke(cli, ["-d", ".", "config", "setup"])
result = self.runner.invoke(
cli, ["-d", ".", "config", "login"], input="\nFAKECODE"
)
2019-12-28 00:37:19 +01:00
self.assertIn("Enter code for", result.output)
2019-12-27 22:33:39 +01:00
2019-12-28 13:31:34 +01:00
def test_clean_exists(self):
result = self.runner.invoke(cli, ["-d", ".", "clean"])
self.assertEqual(0, result.exit_code)
2019-12-27 22:33:39 +01:00
if __name__ == "__main__":
unittest.main()