mirror of
https://github.com/simon987/hexlib.git
synced 2025-04-10 14:06:43 +00:00
Compare commits
2 Commits
89b21884b7
...
a1156599ce
Author | SHA1 | Date | |
---|---|---|---|
a1156599ce | |||
e3f3ea87eb |
@ -126,9 +126,13 @@ class Table:
|
||||
try:
|
||||
conn.execute(sql, list(_serialize(v) for v in value.values()))
|
||||
except sqlite3.OperationalError:
|
||||
if isinstance(key, int):
|
||||
key_type = "integer"
|
||||
else:
|
||||
key_type = "text"
|
||||
conn.execute(
|
||||
"create table if not exists %s (id text primary key,%s)" %
|
||||
(self._table, ",".join("%s %s" % (k, _sqlite_type(v)) for k, v in value.items()))
|
||||
"create table if not exists %s (id %s primary key,%s)" %
|
||||
(self._table, key_type, ",".join("%s %s" % (k, _sqlite_type(v)) for k, v in value.items()))
|
||||
)
|
||||
conn.execute(sql, list(_serialize(v) for v in value.values()))
|
||||
|
||||
|
35
test/test_PersistantState.py
Normal file
35
test/test_PersistantState.py
Normal file
@ -0,0 +1,35 @@
|
||||
import os
|
||||
from unittest import TestCase
|
||||
|
||||
from hexlib.db import PersistentState
|
||||
|
||||
|
||||
class TestPersistentState(TestCase):
|
||||
|
||||
def tearDown(self) -> None:
|
||||
if os.path.exists("state.db"):
|
||||
os.remove("state.db")
|
||||
|
||||
def setUp(self) -> None:
|
||||
if os.path.exists("state.db"):
|
||||
os.remove("state.db")
|
||||
|
||||
def test_get_set(self):
|
||||
s = PersistentState()
|
||||
|
||||
val = {"a": 1, "b": "2", "c": b'3', "d": 4.4}
|
||||
s["a"]["1"] = val
|
||||
|
||||
val["id"] = "1"
|
||||
|
||||
self.assertDictEqual(val, s["a"]["1"])
|
||||
|
||||
def test_get_set_int_id(self):
|
||||
s = PersistentState()
|
||||
|
||||
val = {"a": 1, "b": "2", "c": b'3', "d": 4.4}
|
||||
s["a"][1] = val
|
||||
|
||||
val["id"] = 1
|
||||
|
||||
self.assertDictEqual(val, s["a"][1])
|
Loading…
x
Reference in New Issue
Block a user