Merge pull request #18 from lbryio/hidden_db_fix
Compatibility fix for older sqlite version + improvements
This commit is contained in:
commit
1fafeac393
3 changed files with 27 additions and 12 deletions
2
setup.py
2
setup.py
|
@ -18,7 +18,7 @@ setup(
|
||||||
'asyncio>=3.4.3',
|
'asyncio>=3.4.3',
|
||||||
'aiohttp==3.5.4',
|
'aiohttp==3.5.4',
|
||||||
'aiojobs==0.2.2',
|
'aiojobs==0.2.2',
|
||||||
'ecdsa==0.13',
|
'ecdsa>=0.13.3',
|
||||||
'cryptography==2.5',
|
'cryptography==2.5',
|
||||||
'aiosqlite==0.10.0',
|
'aiosqlite==0.10.0',
|
||||||
'PyNaCl>=1.3.0',
|
'PyNaCl>=1.3.0',
|
||||||
|
|
|
@ -119,10 +119,19 @@ def insert_comment(conn: sqlite3.Connection, claim_id: str, comment: str, parent
|
||||||
conn.execute(
|
conn.execute(
|
||||||
"""
|
"""
|
||||||
INSERT INTO COMMENT(CommentId, LbryClaimId, ChannelId, Body, ParentId,
|
INSERT INTO COMMENT(CommentId, LbryClaimId, ChannelId, Body, ParentId,
|
||||||
Timestamp, Signature, SigningTs)
|
Timestamp, Signature, SigningTs, IsHidden)
|
||||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
VALUES (:comment_id, :claim_id, :channel_id, :comment, :parent_id,
|
||||||
""",
|
:timestamp, :signature, :signing_ts, 0) """,
|
||||||
(comment_id, claim_id, channel_id, comment, parent_id, timestamp, signature, signing_ts)
|
{
|
||||||
|
'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)
|
logging.info('Inserted Comment into DB, `comment_id`: %s', comment_id)
|
||||||
return comment_id
|
return comment_id
|
||||||
|
|
|
@ -223,28 +223,34 @@ class ListCommentsTest(AsyncioTestCase):
|
||||||
print('exit reached')
|
print('exit reached')
|
||||||
os.remove(self.db_file)
|
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):
|
async def asyncSetUp(self):
|
||||||
await super().asyncSetUp()
|
await super().asyncSetUp()
|
||||||
self.server = app.CommentDaemon(config, db_file=self.db_file)
|
self.server = app.CommentDaemon(config, db_file=self.db_file)
|
||||||
await self.server.start(self.host, self.port)
|
await self.server.start(self.host, self.port)
|
||||||
self.addCleanup(self.server.stop)
|
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):
|
async def testListComments(self):
|
||||||
|
await self.create_lots_of_comments()
|
||||||
response_one = await jsonrpc_post(
|
response_one = await jsonrpc_post(
|
||||||
self.url, 'get_claim_comments', page_size=20, page=1, top_level=1, claim_id=self.claim_id
|
self.url, 'get_claim_comments', page_size=20, page=1, top_level=1, claim_id=self.claim_id
|
||||||
)
|
)
|
||||||
self.assertIsNotNone(response_one)
|
self.assertIsNotNone(response_one)
|
||||||
self.assertIn('result', response_one)
|
self.assertIn('result', response_one)
|
||||||
response_one: dict = response_one['result']
|
response_one: dict = response_one['result']
|
||||||
self.assertIs(type(response_one), dict)
|
|
||||||
self.assertEqual(response_one['page_size'], len(response_one['items']))
|
self.assertEqual(response_one['page_size'], len(response_one['items']))
|
||||||
self.assertIn('items', response_one)
|
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'])
|
self.assertGreaterEqual(response_one['total_pages'], response_one['page'])
|
||||||
last_page = response_one['total_pages']
|
last_page = response_one['total_pages']
|
||||||
response = await jsonrpc_post(self.url, 'get_claim_comments', page_size=20,
|
response = await jsonrpc_post(self.url, 'get_claim_comments', page_size=20,
|
||||||
|
|
Loading…
Reference in a new issue