test_sqlthread refactoring
This commit is contained in:
parent
dab4d00a39
commit
3337f40f9d
|
@ -101,16 +101,6 @@ class BitmessageDB(object):
|
||||||
"""
|
"""
|
||||||
return self.__get_current_settings_version()
|
return self.__get_current_settings_version()
|
||||||
|
|
||||||
@sql_schema_version.setter
|
|
||||||
def sql_schema_version(self, setter):
|
|
||||||
"""
|
|
||||||
Update version with one level
|
|
||||||
"""
|
|
||||||
|
|
||||||
if setter:
|
|
||||||
query = "UPDATE settings SET value=CAST(value AS INT) + 1 WHERE key = 'version'"
|
|
||||||
self.cur.execute(query)
|
|
||||||
|
|
||||||
def upgrade_to_latest(self):
|
def upgrade_to_latest(self):
|
||||||
"""
|
"""
|
||||||
Initialize upgrade level
|
Initialize upgrade level
|
||||||
|
@ -118,7 +108,6 @@ class BitmessageDB(object):
|
||||||
|
|
||||||
while self.sql_schema_version < self.max_level:
|
while self.sql_schema_version < self.max_level:
|
||||||
self._upgrade_one_level_sql_statement(self.sql_schema_version)
|
self._upgrade_one_level_sql_statement(self.sql_schema_version)
|
||||||
self.sql_schema_version = True # bump sql_schema_version by one
|
|
||||||
|
|
||||||
def upgrade_schema_if_old_version(self):
|
def upgrade_schema_if_old_version(self):
|
||||||
""" check settings table exists """
|
""" check settings table exists """
|
||||||
|
|
|
@ -27,7 +27,7 @@ CREATE TABLE `sent` (
|
||||||
`ackdata` blob,
|
`ackdata` blob,
|
||||||
`senttime` integer,
|
`senttime` integer,
|
||||||
`lastactiontime` integer,
|
`lastactiontime` integer,
|
||||||
`sleeptill` int,
|
`sleeptill` integer,
|
||||||
`status` text,
|
`status` text,
|
||||||
`retrynumber` integer,
|
`retrynumber` integer,
|
||||||
`folder` text,
|
`folder` text,
|
||||||
|
|
|
@ -408,7 +408,7 @@ class TestUpgradeBitmessageDB(TestSqlBase, unittest.TestCase): # pylint: disabl
|
||||||
answ = check in sent_schema
|
answ = check in sent_schema
|
||||||
self.assertEqual(answ, True, "Column senttime not added to sent table")
|
self.assertEqual(answ, True, "Column senttime not added to sent table")
|
||||||
|
|
||||||
check = ['sleeptill', 'int']
|
check = ['sleeptill', 'integer']
|
||||||
answ = check in sent_schema
|
answ = check in sent_schema
|
||||||
self.assertEqual(answ, True, "Column sleeptill not added to sent table")
|
self.assertEqual(answ, True, "Column sleeptill not added to sent table")
|
||||||
|
|
||||||
|
@ -451,10 +451,98 @@ class TestUpgradeBitmessageDB(TestSqlBase, unittest.TestCase): # pylint: disabl
|
||||||
res = self.test_db.cur.fetchall()
|
res = self.test_db.cur.fetchall()
|
||||||
self.assertEqual(res, [('', '')], "Migration addressbook table data failed")
|
self.assertEqual(res, [('', '')], "Migration addressbook table data failed")
|
||||||
|
|
||||||
def test_bm_db_version_type(self):
|
def test_upgrade_to_latest(self):
|
||||||
"""
|
"""
|
||||||
Test version type
|
Test upgrade_to_latest func
|
||||||
"""
|
"""
|
||||||
self.test_db.cur.execute('''INSERT INTO settings VALUES('version','test_string')''') # noqa
|
self.test_db.upgrade_to_latest()
|
||||||
res = self.test_db.sql_schema_version
|
# check inbox table
|
||||||
self.assertEqual(type(res), int)
|
res = self.get_table_schema("inbox")
|
||||||
|
check = [['msgid', 'blob'],
|
||||||
|
['toaddress', 'text'],
|
||||||
|
['fromaddress', 'text'],
|
||||||
|
['subject', 'text'],
|
||||||
|
['received', 'text'],
|
||||||
|
['message', 'text'],
|
||||||
|
['folder', 'text'],
|
||||||
|
['encodingtype', 'int'],
|
||||||
|
['read', 'bool'],
|
||||||
|
['sighash', 'blob']]
|
||||||
|
self.assertEqual(res, check, "inbox table not valid")
|
||||||
|
|
||||||
|
# check sent table
|
||||||
|
res = self.get_table_schema("sent")
|
||||||
|
check = [['msgid', 'blob'],
|
||||||
|
['toaddress', 'text'],
|
||||||
|
['toripe', 'blob'],
|
||||||
|
['fromaddress', 'text'],
|
||||||
|
['subject', 'text'],
|
||||||
|
['message', 'text'],
|
||||||
|
['ackdata', 'blob'],
|
||||||
|
['senttime', 'integer'],
|
||||||
|
['lastactiontime', 'integer'],
|
||||||
|
['sleeptill', 'integer'],
|
||||||
|
['status', 'text'],
|
||||||
|
['retrynumber', 'integer'],
|
||||||
|
['folder', 'text'],
|
||||||
|
['encodingtype', 'int'],
|
||||||
|
['ttl', 'int']]
|
||||||
|
self.assertEqual(res, check, "sent table not valid")
|
||||||
|
|
||||||
|
# check subscriptions table
|
||||||
|
res = self.get_table_schema("subscriptions")
|
||||||
|
check = [['label', 'text'],
|
||||||
|
['address', 'text'],
|
||||||
|
['enabled', 'bool']]
|
||||||
|
self.assertEqual(res, check, "subscriptions table not valid")
|
||||||
|
|
||||||
|
# check addressbook table
|
||||||
|
res = self.get_table_schema("addressbook")
|
||||||
|
check = [['label', 'text'],
|
||||||
|
['address', 'text']]
|
||||||
|
self.assertEqual(res, check, "addressbook table not valid")
|
||||||
|
|
||||||
|
# check blacklist table
|
||||||
|
res = self.get_table_schema("blacklist")
|
||||||
|
check = [['label', 'text'],
|
||||||
|
['address', 'text'],
|
||||||
|
['enabled', 'bool']]
|
||||||
|
self.assertEqual(res, check, "blacklist table not valid")
|
||||||
|
|
||||||
|
# check whitelist table
|
||||||
|
res = self.get_table_schema("whitelist")
|
||||||
|
check = [['label', 'text'],
|
||||||
|
['address', 'text'],
|
||||||
|
['enabled', 'bool']]
|
||||||
|
self.assertEqual(res, check, "whitelist table not valid")
|
||||||
|
|
||||||
|
# check pubkeys table
|
||||||
|
res = self.get_table_schema("pubkeys")
|
||||||
|
check = [['address', 'text'],
|
||||||
|
['addressversion', 'int'],
|
||||||
|
['transmitdata', 'blob'],
|
||||||
|
['time', 'int'],
|
||||||
|
['usedpersonally', 'text']]
|
||||||
|
self.assertEqual(res, check, "pubkeys table not valid")
|
||||||
|
|
||||||
|
# check inventory table
|
||||||
|
res = self.get_table_schema("inventory")
|
||||||
|
check = [['hash', 'blob'],
|
||||||
|
['objecttype', 'int'],
|
||||||
|
['streamnumber', 'int'],
|
||||||
|
['payload', 'blob'],
|
||||||
|
['expirestime', 'integer'],
|
||||||
|
['tag', 'blob']]
|
||||||
|
self.assertEqual(res, check, "inventory table not valid")
|
||||||
|
|
||||||
|
# check settings table
|
||||||
|
res = self.get_table_schema("settings")
|
||||||
|
check = [['key', 'blob'],
|
||||||
|
['value', 'blob']]
|
||||||
|
self.assertEqual(res, check, "settings table not valid")
|
||||||
|
|
||||||
|
# check objectprocessorqueue table
|
||||||
|
res = self.get_table_schema("objectprocessorqueue")
|
||||||
|
check = [['objecttype', 'int'],
|
||||||
|
['data', 'blob']]
|
||||||
|
self.assertEqual(res, check, "objectprocessorqueue table not valid")
|
Reference in New Issue
Block a user