Добър ден.
Сблъсках се със следния проблем при използване на pymongo==2.1.1
в python2.7
с mongo 2.4.8
Опитах се да намеря решение с помощта на Google и Stack Overflow, но не успях.
какъв е проблемът
Имам следната функция
from bson.code import Code
def read(groupped_by=None):
reducer = Code("""
function(obj, prev){
prev.count++;
}
""")
client = Connection('localhost', 27017)
db = client.urlstats_database
results = db.http_requests.group(key={k:1 for k in groupped_by},
condition={},
initial={"count": 0},
reduce=reducer)
groupped_by = list(groupped_by) + ['count']
result = [tuple(res[col] for col in groupped_by) for res in results]
return sorted(result)
След това се опитвам да напиша тест за тази функция
class UrlstatsViewsTestCase(TestCase):
test_data = {'data%s' % i : 'data%s' % i for i in range(6)}
def test_one_criterium(self):
client = Connection('localhost', 27017)
db = client.urlstats_database
for column in self.test_data:
db.http_requests.remove()
db.http_requests.insert(self.test_data)
response = read([column])
self.assertEqual(response, [(self.test_data[column], 1)])
този тест понякога се проваля, доколкото разбирам, поради забавяне. Както виждам отговорът не е изчистил данните в него
Ако добавя забавяне след премахване на теста, преминава през цялото време.
Има ли някакъв подходящ начин за тестване на такава функционалност?
Благодаря предварително.