コード例 #1
0
ファイル: test_wordbook.py プロジェクト: tomplus/wordbook
 def test_define(self):
     wb = wordbook.WordBook()
     self.mock_dictbase.return_value.define = get_mock_coro(['mock result'])
     ret = yield from wb.define('mock query')
     self.assertEqual(ret, ['mock result'])
     self.mock_dictbase.return_value.define.assert_called_once_with(
         '*', 'mock query')
コード例 #2
0
ファイル: test_wordbook.py プロジェクト: tomplus/wordbook
 def test_get_strategies(self):
     wb = wordbook.WordBook()
     self.mock_dictbase.return_value.show_strat = get_mock_coro(['st mock'])
     ret = yield from wb.get_strategies()
     self.mock_dictbase.return_value.show_strat.assert_called_once_with()
     self.assertIsInstance(ret[0], wordbook.WordBookStrategy)
     self.assertEqual(ret[0].strategy, 'st mock')
     self.assertEqual(ret[0].get_strategy(), ['st', 'mock'])
コード例 #3
0
ファイル: test_wordbook.py プロジェクト: tomplus/wordbook
 def test_get_databases(self):
     wb = wordbook.WordBook()
     self.mock_dictbase.return_value.show_db = get_mock_coro(
         ['db "mock db"'])
     ret = yield from wb.get_databases()
     self.mock_dictbase.return_value.show_db.assert_called_once_with()
     self.assertIsInstance(ret[0], wordbook.WordBookDatabase)
     self.assertEqual(ret[0].database, 'db "mock db"')
     self.assertEqual(ret[0].get_database(), ['db', '"mock db"'])
コード例 #4
0
ファイル: test_wordbook.py プロジェクト: tomplus/wordbook
 def test_connect_host(self):
     self.mock_dictbase.return_value.connect = get_mock_coro(None)
     self.mock_dictbase.return_value.client = get_mock_coro(None)
     wb = wordbook.WordBook('1.2.3.4', 5)
     yield from wb.connect()
     self.mock_dictbase.assert_called_once_with()
     self.mock_dictbase.return_value.connect.assert_called_once_with(
         '1.2.3.4', 5)
     self.mock_dictbase.return_value.client.assert_called_once_with(
         'wordbook')
コード例 #5
0
ファイル: test_wordbook.py プロジェクト: tomplus/wordbook
    def test_mix_match(self):
        wb_base = wordbook.WordBook()
        wb_db = wordbook.WordBookDatabase('mock-db', wb_base)
        wb_st = wordbook.WordBookStrategy('mock-st', wb_db)

        self.mock_dictbase.return_value.match = get_mock_coro(['mock result'])
        ret = yield from wb_st.match('mock query')
        self.assertEqual(ret, ['mock result'])
        self.mock_dictbase.return_value.match.assert_called_once_with(
            'mock-db', 'mock-st', 'mock query')
コード例 #6
0
ファイル: test_wordbook.py プロジェクト: tomplus/wordbook
 def test_connect_default(self):
     self.mock_dictbase.return_value.connect = get_mock_coro(None)
     self.mock_dictbase.return_value.client = get_mock_coro(None)
     wb = wordbook.WordBook()
     yield from wb.connect()
     self.mock_dictbase.assert_called_once_with()
     self.mock_dictbase.return_value.connect.assert_called_once_with(
         None, None)
     self.mock_dictbase.return_value.client.assert_called_once_with(
         'wordbook')
     self.assertEqual(wb.get_database(), ['*', '<all>'])
     self.assertEqual(wb.get_strategy(), ['.', '<default>'])
コード例 #7
0
ファイル: word-search-cli.py プロジェクト: tomplus/wordbook
async def main():
    args = parse_args()

    if args.debug:
        logging.basicConfig(level=logging.DEBUG)

    wb = wordbook.WordBook(host=args.host,
                           port=args.port,
                           database=args.database,
                           strategy=args.strategy)
    await wb.connect()

    if args.list_databases:
        dbs = await wb.get_databases()
        for db in dbs:
            print("{:30} {}".format(*db.get_database()))

    elif args.list_strategies:
        sgs = await wb.get_strategies()
        for sg in sgs:
            print("{:30} {}".format(*sg.get_strategy()))

    elif args.match is not None:
        matches = await wb.match(args.match)

        if matches:
            for match in matches:
                print("{:30} {}".format(*match.split(' ', 1)))
        else:
            print('No match found')

    elif args.define is not None:
        defines = await wb.define(args.define)

        if defines:
            for define in defines:
                print_line(define)
            print()
        else:
            print('No definition found')