diff --git a/setup.py b/setup.py index dc5a7e0..923e82a 100644 --- a/setup.py +++ b/setup.py @@ -18,7 +18,7 @@ setup( 'asyncio>=3.4.3', 'aiohttp==3.5.4', 'aiojobs==0.2.2', - 'ecdsa==0.13', + 'ecdsa>=0.13.3', 'cryptography==2.5', 'aiosqlite==0.10.0', 'PyNaCl>=1.3.0', diff --git a/src/database/queries.py b/src/database/queries.py index 7487b6a..7a12793 100644 --- a/src/database/queries.py +++ b/src/database/queries.py @@ -119,10 +119,19 @@ def insert_comment(conn: sqlite3.Connection, claim_id: str, comment: str, parent conn.execute( """ INSERT INTO COMMENT(CommentId, LbryClaimId, ChannelId, Body, ParentId, - Timestamp, Signature, SigningTs) - VALUES (?, ?, ?, ?, ?, ?, ?, ?) - """, - (comment_id, claim_id, channel_id, comment, parent_id, timestamp, signature, signing_ts) + Timestamp, Signature, SigningTs, IsHidden) + VALUES (:comment_id, :claim_id, :channel_id, :comment, :parent_id, + :timestamp, :signature, :signing_ts, 0) """, + { + 'comment_id': comment_id, + 'claim_id': claim_id, + 'channel_id': channel_id, + 'comment': comment, + 'parent_id': parent_id, + 'timestamp': timestamp, + 'signature': signature, + 'signing_ts': signing_ts + } ) logging.info('Inserted Comment into DB, `comment_id`: %s', comment_id) return comment_id diff --git a/test/test_server.py b/test/test_server.py index 0712ab4..72c794e 100644 --- a/test/test_server.py +++ b/test/test_server.py @@ -223,28 +223,34 @@ class ListCommentsTest(AsyncioTestCase): print('exit reached') os.remove(self.db_file) + async def create_lots_of_comments(self, n=23): + self.comment_list = [{key: self.replace[key]() for key in self.replace.keys()} for _ in range(23)] + for comment in self.comment_list: + comment['claim_id'] = self.claim_id + self.comment_ids = [(await self.post_comment(**comm))['result']['comment_id'] + for comm in self.comment_list] + async def asyncSetUp(self): await super().asyncSetUp() self.server = app.CommentDaemon(config, db_file=self.db_file) await self.server.start(self.host, self.port) self.addCleanup(self.server.stop) - if self.comment_ids is None: - self.comment_list = [{key: self.replace[key]() for key in self.replace.keys()} for _ in range(23)] - for comment in self.comment_list: - comment['claim_id'] = self.claim_id - self.comment_ids = [(await self.post_comment(**comm))['result']['comment_id'] - for comm in self.comment_list] async def testListComments(self): + await self.create_lots_of_comments() response_one = await jsonrpc_post( self.url, 'get_claim_comments', page_size=20, page=1, top_level=1, claim_id=self.claim_id ) self.assertIsNotNone(response_one) self.assertIn('result', response_one) response_one: dict = response_one['result'] - self.assertIs(type(response_one), dict) self.assertEqual(response_one['page_size'], len(response_one['items'])) self.assertIn('items', response_one) + + comments = response_one['items'] + hidden = list(filter(lambda c: c['is_hidden'], comments)) + self.assertEqual(hidden, []) + self.assertGreaterEqual(response_one['total_pages'], response_one['page']) last_page = response_one['total_pages'] response = await jsonrpc_post(self.url, 'get_claim_comments', page_size=20,