def test_mix_sources_2(self): moxer = mox.Mox() moxer.StubOutWithMock(ArtifactSource, "get_multiple_by_name") moxer.StubOutWithMock(ArtifactContent, "all") source_names = ("source/1", "source/2") sources = [ MockEntity(key_name=name, name=name) for name in source_names ] def _content(id): # toggles between sources source = sources[id % 2] id_str = str(id) return MockEntity(key_name=id_str, guid=id_str, body=generate_phrase(5), source=source, source_name=source.name) ArtifactSource.get_multiple_by_name(source_names).AndReturn(sources) # performs ArtifactContent query for each source ArtifactContent.all().AndReturn( MockQuery(xrange(12), create_call=_content)) ArtifactContent.all().AndReturn( MockQuery(xrange(12), create_call=_content)) moxer.ReplayAll() mixed_sources, text = new_default_mixer().mix_sources(source_names) self.assertEquals(len(mixed_sources), len(source_names)) moxer.VerifyAll()
def test_mix_sources_1(self): moxer = mox.Mox() moxer.StubOutWithMock(ArtifactSource, "get_multiple_by_name") moxer.StubOutWithMock(ArtifactContent, "all") source_name = "source/1" source = MockEntity(key_name=source_name, name=source_name) def _content(id): id_str = str(id) return MockEntity(key_name=id_str, guid=id_str, body=generate_phrase(5), source=source, source_name=source.name) ArtifactSource.get_multiple_by_name(source_name).AndReturn((source, )) ArtifactContent.all().AndReturn( MockQuery(xrange(12), create_call=_content)) moxer.ReplayAll() sources, text = new_default_mixer().mix_sources(source_name) self.assertEquals(len(sources), 1) moxer.VerifyAll()
def test_mix_sources_2(self): moxer = mox.Mox() moxer.StubOutWithMock(ArtifactSource, "get_multiple_by_name") moxer.StubOutWithMock(ArtifactContent, "all") source_names = ("source/1", "source/2") sources = [MockEntity(key_name=name, name=name) for name in source_names] def _content(id): # toggles between sources source = sources[id % 2] id_str = str(id) return MockEntity(key_name=id_str, guid=id_str, body=generate_phrase(5), source=source, source_name=source.name) ArtifactSource.get_multiple_by_name(source_names).AndReturn(sources) # performs ArtifactContent query for each source ArtifactContent.all().AndReturn(MockQuery(xrange(12), create_call=_content)) ArtifactContent.all().AndReturn(MockQuery(xrange(12), create_call=_content)) moxer.ReplayAll() mixed_sources, text = new_default_mixer().mix_sources(source_names) self.assertEquals(len(mixed_sources), len(source_names)) moxer.VerifyAll()
def mix_sources(self, *source_names): sources = ArtifactSource.get_multiple_by_name(*source_names) missing = filter(lambda i: i is None, sources) if missing: raise NotFoundException("1 or more sources not found: %s" % source_names) return self.__random_content_for_sources(sources)
def test_mix_sources_1(self): moxer = mox.Mox() moxer.StubOutWithMock(ArtifactSource, "get_multiple_by_name") moxer.StubOutWithMock(ArtifactContent, "all") source_name = "source/1" source = MockEntity(key_name=source_name, name=source_name) def _content(id): id_str = str(id) return MockEntity(key_name=id_str, guid=id_str, body=generate_phrase(5), source=source, source_name=source.name) ArtifactSource.get_multiple_by_name(source_name).AndReturn((source, )) ArtifactContent.all().AndReturn(MockQuery(xrange(12), create_call=_content)) moxer.ReplayAll() sources, text = new_default_mixer().mix_sources(source_name) self.assertEquals(len(sources), 1) moxer.VerifyAll()
def mix_sources(self, *source_names): sources = ArtifactSource.get_multiple_by_name(*source_names) missing = filter(lambda i: i is None, sources) if missing: raise NotFoundException("1 or more sources not found: %s" % source_names) return self.__random_content_for_sources(sources)