def test_serverFiveOrLessClient(self): global sharedListData # Create stop event stopEvent = Event() # Create server barrier sBarrier = Barrier(2) # Create server bs = BufferServer(13001, 5, stopEvent, sBarrier, 5, 5, "http://localhost:8000", "quiltro", "perroCallejero") streamingList = ObjectList() streamingList.append(Streaming(randomStreaming(1))) bs.communicator.service.postStreamings(streamingList) searchList = ObjectList() searchList.append(Search(randomSearch(1))) bs.communicator.service.postSearches(searchList) bs.start() # Create barrier for N clients randomClients = randomInteger(3) + 2 cBarrier = Barrier(randomClients + 1) # Create N clients for i in range(0, randomClients): thread.start_new_thread(oneThread, (cBarrier, fakeClient, bs.getHostName(), 13001, )) cBarrier.wait() time.sleep(5) # stop server stopEvent.set() # Wait for server sBarrier.wait() time.sleep(5) # Get data and compare numberTweets = len(bs.globalBuffer.localBuffer.tweetList.list) numberUsers = len(bs.globalBuffer.localBuffer.userList.list) numberTweetStreaming = len(bs.globalBuffer.localBuffer.tweetStreamingList.list) numberTweetSearch = len(bs.globalBuffer.localBuffer.tweetSearchList.list) self.assertEqual(numberTweets, 0) self.assertEqual(numberUsers, 0) self.assertEqual(numberTweetStreaming, 0) self.assertEqual(numberTweetSearch, 0) # count originals originalNumberTweets = 0 originalNumberUsers = 0 originalNumberTweetStreaming = 0 originalNumberTweetSearch = 0 lb = LocalBuffer() for i in range(0, randomClients): lb = countData(lb, sharedListData[i*4 + 0], sharedListData[i*4 + 1], sharedListData[i*4 + 2], sharedListData[i*4 + 3]) originalNumberTweets += len(lb.tweetList.list) originalNumberUsers += len(lb.userList.list) originalNumberTweetStreaming += len(lb.tweetStreamingList.list) originalNumberTweetSearch += len(lb.tweetSearchList.list) self.assertEqual(originalNumberTweets, bs.communicator.sentTweets) self.assertEqual(originalNumberUsers, bs.communicator.sentUsers) self.assertEqual(originalNumberTweetStreaming, bs.communicator.sentTweetStreamings) self.assertEqual(originalNumberTweetSearch, bs.communicator.sentTweetSearches)
def test_sendData(self): userList = generateOneUser(userId = 1) tweetList = generateManyTweets(randomInteger(100), userId = 1) tweetStreamingList = ObjectList() tweetSearchList = ObjectList() for tweet in tweetList.getList(): tweetStreaming = TweetStreaming(randomTweetStreaming(tweet.id, 1)) tweetStreamingList.append(tweetStreaming) tweetSearch = TweetSearch(randomTweetSearch(tweet.id, 1)) tweetSearchList.append(tweetSearch) self.wsDb.sendData(tweetList, userList, tweetStreamingList, tweetSearchList)
def createData(base): status = getOneStatusTS() randomTweets = base + randomInteger(99) + 1 tweetList = ObjectList() userList = ObjectList() streamingList = ObjectList() searchList = ObjectList() for i in range(base, randomTweets): status["id"] = i status["user"]["id"] = i ps = ParserStatus(status) tweet = Tweet(ps.getTweet()) user = User(ps.getUser()) tweetList.append(tweet) userList.append(user) streamingList.append(TweetStreaming(randomTweetStreaming(i, 1))) searchList.append(TweetSearch(randomTweetSearch(i, 1))) return tweetList, userList, streamingList, searchList
def test_postManyTweets(self): self.ws.postUsers(generateOneUser(userId = 1)) self.ws.postTweets(generateManyTweets(randomInteger(100), userId = 1))
def test_postManyUsers(self): self.ws.postUsers(generateManyUsers(randomInteger(100)))
def test_postManyTweetSearches(self): self.ws.postUsers(generateOneUser(userId = 1)) self.ws.postTweets(generateOneTweet(tweetId = 1, userId = 1)) self.ws.postSearches(generateOneSearch(searchId = 1)) self.ws.postTweetSearches(generateManyTweetSearches( randomInteger(100), tweetId = 1, searchId = 1 ))
def test_postManyTweetStreamings(self): self.ws.postUsers(generateOneUser(userId = 1)) self.ws.postTweets(generateOneTweet(tweetId = 1, userId = 1)) self.ws.postStreamings(generateOneStreaming(streamingId = 1)) self.ws.postTweetStreamings(generateManyTweetStreamings( randomInteger(100), tweetId = 1, streamingId = 1 ))
def test_postManyStreamings(self): self.ws.postStreamings(generateManyStreamings(randomInteger(100)))