import docopt from twisted.trial import unittest from lbrynet.daemon import DaemonCLI from lbrynet.daemon.Daemon import Daemon class DaemonCLITests(unittest.TestCase): def test_guess_type(self): self.assertEqual('0.3.8', DaemonCLI.guess_type('0.3.8')) self.assertEqual(0.3, DaemonCLI.guess_type('0.3')) self.assertEqual(3, DaemonCLI.guess_type('3')) self.assertEqual('VdNmakxFORPSyfCprAD/eDDPk5TY9QYtSA==', DaemonCLI.guess_type('VdNmakxFORPSyfCprAD/eDDPk5TY9QYtSA==')) self.assertEqual(0.3, DaemonCLI.guess_type('0.3')) self.assertEqual(True, DaemonCLI.guess_type('TRUE')) self.assertEqual(True, DaemonCLI.guess_type('true')) self.assertEqual(True, DaemonCLI.guess_type('True')) self.assertEqual(False, DaemonCLI.guess_type('FALSE')) self.assertEqual(False, DaemonCLI.guess_type('false')) self.assertEqual(False, DaemonCLI.guess_type('False')) self.assertEqual('3', DaemonCLI.guess_type('3', key="uri")) self.assertEqual('0.3', DaemonCLI.guess_type('0.3', key="uri")) self.assertEqual('True', DaemonCLI.guess_type('True', key="uri")) self.assertEqual('False', DaemonCLI.guess_type('False', key="uri")) self.assertEqual('3', DaemonCLI.guess_type('3', key="file_name")) self.assertEqual('3', DaemonCLI.guess_type('3', key="name")) self.assertEqual('3', DaemonCLI.guess_type('3', key="download_directory")) self.assertEqual('3', DaemonCLI.guess_type('3', key="channel_name")) self.assertEqual(3, DaemonCLI.guess_type('3', key="some_other_thing")) class DaemonDocsTests(unittest.TestCase): def test_can_parse_api_method_docs(self): failures = [] for name, fn in Daemon.callable_methods.iteritems(): try: docopt.docopt(fn.__doc__, ()) except docopt.DocoptLanguageError as err: failures.append("invalid docstring for %s, %s" % (name, err.message)) except docopt.DocoptExit: pass if failures: self.fail("\n" + "\n".join(failures))