# HG changeset patch # User Atul Varma # Date 1261635266 28800 # Node ID 01b054bc3a27f8f03821cbfa77c6eb273dc64c3a # Parent e191d30033d80140823945076fa32046d59682b0 added a non-trivial cached search test diff -r e191d30033d8 -r 01b054bc3a27 test.py --- a/test.py Wed Dec 23 21:55:25 2009 -0800 +++ b/test.py Wed Dec 23 22:14:26 2009 -0800 @@ -1,6 +1,7 @@ import unittest import StringIO -import copy +from copy import deepcopy +from datetime import datetime import simplejson as json import pymongo @@ -93,9 +94,33 @@ def test_update_with_no_bugs(self): api = self.FakeApi() - api.set('/bug', {}, {'data': {'bugs': {}}}) + api.set('/bug', {}, {'data': {'bugs': []}}) search = bzapi.CachedSearch(api, testdb.bugs) search.update() + self.assertEqual(testdb.bugs.find().count(), 0) + + def test_update_with_bug(self): + api = self.FakeApi() + + bug = {'id': '1034', + 'creation_time': '2009-06-11T22:31:24Z', + 'last_change_time': '2009-06-11T22:31:24Z'} + response = {'data': {'bugs': [bug]}, + 'date': datetime.utcnow()} + + api.set('/bug', {}, deepcopy(response)) + + bug['comments'] = 'blah' + + api.set('/bug', {'id_mode': 'include', + 'id': '1034', + 'comments': '1', + 'history': '1'}, deepcopy(response)) + + search = bzapi.CachedSearch(api, testdb.bugs) + search.update() + + self.assertEqual(testdb.bugs.find({'comments': 'blah'}).count(), 1) class ApiTests(_MongoTestCase): class FakeOpenUrl(object): @@ -117,7 +142,7 @@ def setUp(self): _MongoTestCase.setUp(self) - self.config = copy.deepcopy(self._FAKE_CONFIG) + self.config = deepcopy(self._FAKE_CONFIG) def _get_basic_fake_api(self, **kwargs): opener = self.FakeOpenUrl()