Source code for tests.test_many_docs
from .context import lds
import unittest
import json
[docs]class BasicTestSuite(unittest.TestCase):
[docs] def construct_db(self):
db = lds.DocStore()
insert = []
for i in range(1000):
if i % 5 == 0:
if i % 10 == 0:
insert += '{\
"name": "oski", \
"classes": [{"dep": "math", "course": "54"}, {"dep": "cs", "course": "170"}], \
"school": {"state": "california"}\
}',
else:
insert += '{\
"name": "oski jr", \
"classes": [{"dep": "phil", "course": "12"}, {"dep": "psych", "course": "127"}], \
"school": {"state": "california"}\
}',
else:
insert += '{\
"name": "harry", \
"classes": [{"dep": "bio", "course": "1a"}, {"dep": "chem", "course": "1b"}], \
"school": {"state": "washington"}\
}',
db.add_many(insert)
return db
[docs] def test_large_matches(self):
db = self.construct_db()
assert len(db.search('{}')) == 1000
assert len(db.search('{"dep": "math"}')) == 100
assert len(db.search('{"classes": [{"dep": "math"}, {"dep": "cs"}]}')) == 100
assert len(db.search('{"dep": "math", "course": "54"}')) == 100
assert len(db.search('{"classes": [{"dep": "math", "course": "54"}, {"dep": "cs"}]}')) == 100
assert len(db.search('{"name": "joe"}')) == 0
assert len(db.search('{"school": "california"}')) == 0
assert len(db.search('{"classes": [{"dep": "math"}, {"dep": "psych"}]}')) == 0
[docs] def test_large_updates(self):
db = self.construct_db()
assert len(db.search('{}')) == 1000
assert len(db.search('{"dep": "bio"}')) == 800
assert len(db.search('{"name": "harry"}')) == 800
db.update('{"dep": "bio"}', '{"dep": "biology"}', exact=True)
assert len(db.search('{"dep": "bio"}')) == 0
assert len(db.search('{"dep": "biology"}')) == 800
db.update('{"dep": "biology"}', '{"classes": "withdrawn"}')
assert len(db.search('{"dep": "biology"}')) == 0
assert len(db.search('{"name": "harry"}')) == 800
assert len(db.search('{"name": "harry", "dep": "chem"}')) == 0