lbry-sdk/tests/unit/test_cli.py
2019-01-22 18:04:17 -05:00

98 lines
3.8 KiB
Python

import contextlib
from io import StringIO
from twisted.trial import unittest
from lbrynet.extras.cli import normalize_value, main
from lbrynet.extras.system_info import get_platform
class CLITest(unittest.TestCase):
def test_guess_type(self):
self.assertEqual('0.3.8', normalize_value('0.3.8'))
self.assertEqual('0.3', normalize_value('0.3'))
self.assertEqual(3, normalize_value('3'))
self.assertEqual(3, normalize_value(3))
self.assertEqual(
'VdNmakxFORPSyfCprAD/eDDPk5TY9QYtSA==',
normalize_value('VdNmakxFORPSyfCprAD/eDDPk5TY9QYtSA==')
)
self.assertTrue(normalize_value('TRUE'))
self.assertTrue(normalize_value('true'))
self.assertTrue(normalize_value('TrUe'))
self.assertFalse(normalize_value('FALSE'))
self.assertFalse(normalize_value('false'))
self.assertFalse(normalize_value('FaLsE'))
self.assertTrue(normalize_value(True))
self.assertEqual('3', normalize_value('3', key="uri"))
self.assertEqual('0.3', normalize_value('0.3', key="uri"))
self.assertEqual('True', normalize_value('True', key="uri"))
self.assertEqual('False', normalize_value('False', key="uri"))
self.assertEqual('3', normalize_value('3', key="file_name"))
self.assertEqual('3', normalize_value('3', key="name"))
self.assertEqual('3', normalize_value('3', key="download_directory"))
self.assertEqual('3', normalize_value('3', key="channel_name"))
self.assertEqual(3, normalize_value('3', key="some_other_thing"))
def test_help_command(self):
actual_output = StringIO()
with contextlib.redirect_stdout(actual_output):
main(['help'])
actual_output = actual_output.getvalue()
self.assertSubstring('usage: lbrynet [--version] [-h]', actual_output)
def test_help_for_command_command(self):
actual_output = StringIO()
with contextlib.redirect_stdout(actual_output):
main(['help', 'publish'])
actual_output = actual_output.getvalue()
self.assertSubstring('Make a new name claim and publish', actual_output)
self.assertSubstring('Usage:', actual_output)
def test_help_for_command_command_with_invalid_command(self):
actual_output = StringIO()
with contextlib.redirect_stdout(actual_output):
main(['help', 'publish1'])
self.assertSubstring('Invalid command name', actual_output.getvalue())
def test_version_command(self):
actual_output = StringIO()
with contextlib.redirect_stdout(actual_output):
main(['--version'])
self.assertEqual(
actual_output.getvalue().strip(),
"lbrynet {lbrynet_version}".format(**get_platform())
)
def test_invalid_command(self):
actual_output = StringIO()
with contextlib.redirect_stderr(actual_output):
try:
main(['publish1'])
except SystemExit:
pass
self.assertSubstring("invalid choice: 'publish1'", actual_output.getvalue())
def test_valid_command_daemon_not_started(self):
actual_output = StringIO()
with contextlib.redirect_stdout(actual_output):
main(["publish", '--name=asd', '--bid=99'])
self.assertEqual(
actual_output.getvalue().strip(),
"Could not connect to daemon. Are you sure it's running?"
)
def test_deprecated_command_daemon_not_started(self):
actual_output = StringIO()
with contextlib.redirect_stdout(actual_output):
main(["wallet_balance"])
self.assertEqual(
actual_output.getvalue().strip(),
"wallet_balance is deprecated, using account_balance.\n"
"Could not connect to daemon. Are you sure it's running?"
)