def test_get_registers_appropriate_tasks(self): moxer = Mox() request, response = new_mock_request_response(moxer) _stub_taskqueue(moxer) moxer.StubOutWithMock(Feed, "find_active", use_mock_anything=True) def create_call(i): source_name = "source-%i" % i source = MockEntity(key_name=source_name, name=source_name) return MockEntity(key_name="feed-%i" % i, artifact_source=source, url="hi") q_range = xrange(0, 5) Feed.find_active().AndReturn( MockQuery(q_range, create_call=create_call)) # expects queued tasks for each feed for i in q_range: taskqueue.add(name=IgnoreArg(), url=IgnoreArg()) moxer.ReplayAll() handler = CronIngestDriverHandler() handler.initialize(request, response) handler.get() moxer.VerifyAll()
def test_get(self): request, response = new_mock_request_response(self.m) self.m.StubOutWithMock(ArtifactSourceAccessor, "find_artifact_counts") self.m.StubOutWithMock(ArtifactSourceAccessor, "find_artifact_counts_newer") self.m.StubOutWithMock(memcache, "get_stats") self.m.StubOutWithMock(ConfigurationAccessor, "get_or_create") ArtifactSourceAccessor.find_artifact_counts().AndReturn({}) ArtifactSourceAccessor.find_artifact_counts_newer(IgnoreArg()).AndReturn({}) memcache.get_stats().AndReturn({}) # token = "oauth_token_secret=hi&oauth_token=hi" # config = MockEntity(key_name="hi", twitter_oauth_enabled=True, twitter_access_token=token, twitter_read_only=False) # ConfigurationAccessor.get_or_create().AndReturn(config) api = new_mock_twitter_api(self.m) api.GetUserTimeline(count=IgnoreArg()).AndReturn(()) api.GetDirectMessages(since=IgnoreArg()).AndReturn(()) api.GetReplies(since=IgnoreArg()).AndReturn(()) handler = StatsHandler() handler.initialize(request, response) self.m.ReplayAll() handler.get() self.m.VerifyAll()
def _test_post_no_user(self): moxer = Mox() request, response = new_mock_request_response(moxer) moxer.StubOutWithMock(users, "get_current_user", use_mock_anything=True) moxer.StubOutWithMock(User, "__init__", use_mock_anything=True) moxer.StubOutWithMock(Feed, "get_by_source_name", use_mock_anything=True) moxer.StubOutWithMock(model, "ingest_feed_entries") source_name = "hi" username = Services.API_USER user = MockEntity(key_name=username, email=lambda: username) # passes auth (via cron) users.get_current_user().AndReturn(user) handler = IngestHandler() # no logged in user users.get_current_user() User.__init__(username) handler.initialize(request, response) feed = MockEntity(key_name=source_name, url="no") Feed.get_by_source_name(source_name, return_none=True).AndReturn(feed) model.ingest_feed_entries(feed, None, error_call=IgnoreArg()).AndReturn(()) moxer.ReplayAll() handler.post(source_name) moxer.VerifyAll()
def test_cron_twitter_actor_handler(self): moxer = Mox() request, response = new_mock_request_response(moxer) _stub_taskqueue(moxer) taskqueue.add(url=IgnoreArg(), countdown=IgnoreArg()) moxer.ReplayAll() handler = CronTwitterActorHandler() handler.initialize(request, response) handler.get() moxer.VerifyAll()
def test_get_no_q(self): moxer = mox.Mox() request, response = new_mock_request_response(moxer) handler = MixtureResponseHandler() handler.initialize(request, response) request.get("q", None).AndReturn(None) response.set_status(400) response.clear() moxer.ReplayAll() handler.get() moxer.VerifyAll()
def test_get_q(self): moxer = mox.Mox() request, response = new_mock_request_response(moxer) handler = MixtureResponseHandler() handler.initialize(request, response) message = "hello" request.get("q", None).AndReturn(message) mixer = mixer_stub(moxer) mixer.mix_response(message).AndReturn(((Mock(name="source1")), "all your base are belong to us")) moxer.ReplayAll() handler.get() moxer.VerifyAll()
def test_post_handles_ingest_error(self): m = Mox() request, response = new_mock_request_response(m) m.StubOutWithMock(Feed, "get_by_source_name" ) request.get("keep").AndReturn(None) feed_name = "blah" Feed.get_by_source_name(feed_name, return_none=True).AndRaise(Exception("real bad")) # response.set_status(200) m.ReplayAll() handler = CronIngestHandler() handler.initialize(request, response) _assert_handles_error(lambda: handler.post(feed_name)) m.VerifyAll()
def test_post_unauthorized(self): moxer = Mox() request, response = new_mock_request_response(moxer) moxer.StubOutWithMock(users, "get_current_user", use_mock_anything=True) handler = IngestHandler() handler.initialize(request, response) username = "******" users.get_current_user().AndReturn(MockEntity(key_name=username, email=lambda: username)) response.set_status(403) response.clear() moxer.ReplayAll() handler.post("hi") moxer.VerifyAll()
def test_post_handles_ingest_error(self): m = Mox() request, response = new_mock_request_response(m) m.StubOutWithMock(Feed, "get_by_source_name") request.get("keep").AndReturn(None) feed_name = "blah" Feed.get_by_source_name(feed_name, return_none=True).AndRaise( Exception("real bad")) # response.set_status(200) m.ReplayAll() handler = CronIngestHandler() handler.initialize(request, response) _assert_handles_error(lambda: handler.post(feed_name)) m.VerifyAll()
def __init(self): moxer = mox.Mox() # moxer.StubOutWithMock(users, "get_current_user") request, response = new_mock_request_response(moxer) handler = MixtureHandler() handler.initialize(request, response) # username = Services.API_USER # users.get_current_user().AndReturn(Mock(email=lambda: username)) # defaults to no query and speaker request.get("s", None).AndReturn(None) request.get("q", None).AndReturn(None) return moxer, handler, mixer_stub(moxer)
def test_put_friend(self): request, response = new_mock_request_response(self.m) self.m.StubOutWithMock(TwitterConnector, "new_api") api = _create_api(self.m) TwitterConnector.new_api().AndReturn(api) username = "******" api.CreateFriendship(username) response.set_status(204) handler = TwitterFriendHandler() handler.initialize(request, response) set_api_user(self.m) self.m.ReplayAll() handler.put(username) self.m.VerifyAll()
def test_safe_twitter_actor_handler(self): moxer = Mox() request, response = new_mock_request_response(moxer) moxer.StubOutWithMock(TwitterActor, "__new__") actor = moxer.CreateMock(TwitterActor) TwitterActor.__new__(TwitterActor).AndReturn(actor) actor.act() moxer.ReplayAll() handler = SafeTwitterActorHandler() handler.initialize(request, response) result = handler.post() moxer.VerifyAll() if result: exception, msg = result self.fail("exception occurred: %s" % msg)
def test_put_friend(self): request, response = new_mock_request_response(self.m) self.m.StubOutWithMock(TwitterConnector, "new_api") api = _create_api(self.m) TwitterConnector.new_api().AndReturn(api) username = "******" api.GetUser(username).AndReturn(Mock(name="hi", screen_name=username, url="hi", statuses_count=1, followers_count=1, friends_count=1)) handler = TwitterUserHandler() handler.initialize(request, response) set_api_user(self.m) self.m.ReplayAll() handler.get(username) self.m.VerifyAll()
def test_put_friend(self): request, response = new_mock_request_response(self.m) self.m.StubOutWithMock(TwitterConnector, "new_api") api = _create_api(self.m) TwitterConnector.new_api().AndReturn(api) username = "******" api.GetUser(username).AndReturn( Mock(name="hi", screen_name=username, url="hi", statuses_count=1, followers_count=1, friends_count=1)) handler = TwitterUserHandler() handler.initialize(request, response) set_api_user(self.m) self.m.ReplayAll() handler.get(username) self.m.VerifyAll()
def test_post_with_user(self): moxer = Mox() request, response = new_mock_request_response(moxer) moxer.StubOutWithMock(users, "get_current_user", use_mock_anything=True) # moxer.StubOutWithMock(ArtifactInfo, "delete_oldest_by_source", use_mock_anything=True) moxer.StubOutWithMock(ArtifactContent, "delete_oldest_by_source") moxer.StubOutWithMock(Counters, "source_counter") moxer.StubOutWithMock(Feed, "get_by_source_name", use_mock_anything=True) moxer.StubOutWithMock(model, "ingest_feed_entries") source_name = "hi" username = Services.API_USER user = MockEntity(key_name=username, email=lambda: username) users.get_current_user().AndReturn(user) handler = IngestHandler() users.get_current_user().AndReturn(user) handler.initialize(request, response) request.get("keep").AndReturn(None) counter = moxer.CreateMock(Counter) Counters.source_counter(source_name).AndReturn(counter) counter.decrement(IgnoreArg()) source = MockEntity(key_name=source_name, name=source_name) feed = MockEntity(key_name=source_name, url="no", artifact_source=source) # ArtifactInfo.delete_oldest_by_source(source, IgnoreArg()).AndReturn([]) ArtifactContent.delete_oldest_by_source(source, IgnoreArg(), pre_call=IgnoreArg()).AndReturn([]) Feed.get_by_source_name(source_name, return_none=True).AndReturn(feed) model.ingest_feed_entries(feed, user, error_call=IgnoreArg()).AndReturn(()) moxer.ReplayAll() handler.post(source_name) moxer.VerifyAll()
def test_get_registers_appropriate_tasks(self): moxer = Mox() request, response = new_mock_request_response(moxer) _stub_taskqueue(moxer) moxer.StubOutWithMock(Feed, "find_active", use_mock_anything=True) def create_call(i): source_name = "source-%i" % i source = MockEntity(key_name=source_name, name=source_name) return MockEntity(key_name="feed-%i" % i, artifact_source=source, url="hi") q_range = xrange(0,5) Feed.find_active().AndReturn(MockQuery(q_range, create_call=create_call)) # expects queued tasks for each feed for i in q_range: taskqueue.add(name=IgnoreArg(), url=IgnoreArg()) moxer.ReplayAll() handler = CronIngestDriverHandler() handler.initialize(request, response) handler.get() moxer.VerifyAll()