def test_LookupLimitSearch(self): searchTerms = ["brazil", "seattle", "poland", "comedy"] # make sure to get a unique cookie, to start over self.req = Request() self.req.addField(iPediaFields.getCookie, g_nonUniqueDeviceInfo) self.getResponse([iPediaFields.transactionId, iPediaFields.cookie]) cookie = self.rsp.getField(iPediaFields.cookie) lookupsToDo = g_unregisteredLookupsLimit + 10 for t in range(lookupsToDo): searchTerm = searchTerms[t % len(searchTerms)] self.req = Request() self.req.addField(iPediaFields.cookie, cookie) self.req.addField(iPediaFields.getArticle, searchTerm) self.getResponse([iPediaFields.transactionId]) if self.rsp.hasField(iPediaFields.error): self.assertError(ServerErrors.lookupLimitReached) self.assertEqual(t, g_unregisteredLookupsLimit) return else: self.assertEqual(True, self.rsp.hasField(iPediaFields.articleTitle)) self.assertEqual(True, self.rsp.hasField(iPediaFields.articleBody)) self.assertEqual(True, self.rsp.hasField(iPediaFields.formatVersion)) self.assertFieldEqual(self.rsp, iPediaFields.formatVersion, DEFINITION_FORMAT_VERSION) # didn't find response with an error so far, so there's a bug in the server self.assertEqual(True, False)
def test_DoubleRegistrationUniqueDeviceInfo(self): self.req = Request() self.req.addField(iPediaFields.getCookie, g_uniqueDeviceInfo) self.getResponse([iPediaFields.transactionId, iPediaFields.cookie]) cookie = self.rsp.getField(iPediaFields.cookie) self.req = Request() self.req.addField(iPediaFields.getCookie, g_uniqueDeviceInfo) self.getResponse([iPediaFields.transactionId, iPediaFields.cookie]) cookie2 = self.rsp.getField(iPediaFields.cookie) self.assertEqual(cookie, cookie2)
def test_GetCookieAndCookie(self): self.req = Request() self.req.addField(iPediaFields.getCookie, g_exampleDeviceInfo) self.getResponse([iPediaFields.cookie, iPediaFields.transactionId]) cookie = self.rsp.getField(iPediaFields.cookie) self.req = Request() self.req.addField(iPediaFields.cookie, cookie) self.req.addField(iPediaFields.getCookie, g_exampleDeviceInfo) self.getResponse([iPediaFields.transactionId, iPediaFields.error]) self.assertError(ServerErrors.malformedRequest)
def test_ProtocolMissing(self): self.req = Request() self.req.clearFields() self.req.addTransactionId() self.req.addField(iPediaFields.clientInfo, "Python test client 1.0") self.getResponse([iPediaFields.error, iPediaFields.transactionId]) self.assertError(ServerErrors.malformedRequest)
def test_ClientInfoMissing(self): self.req = Request() self.req.clearFields() self.req.addTransactionId() self.req.addField(iPediaFields.protocolVersion, "1") self.getResponse([iPediaFields.error, iPediaFields.transactionId]) self.assertError(ServerErrors.malformedRequest)
def _get_metrics(self): print "metrics got called" request = Request(Request.Method.GET, '/metrics?rsid={}'.format(self._suite_id)) response = self._client.execute(request) assert isinstance(response, list) metrics = [to_dynamic_object(metric) for metric in response] return metrics
def _get_dimensions(self): print "dimensions got called" request = Request(Request.Method.GET, '/dimensions?rsid={}'.format(self._suite_id)) response = self._client.execute(request) assert isinstance(response, list) dimensions = [to_dynamic_object(dimension) for dimension in response] return dimensions
def list_reports_suites(self): request = Request(Request.Method.GET, '/collections/suites?expansion=name') response = self._client.execute(request) content = response['content'] reports_suites = [ReportSuite( rs['rsid'], rs['name'], self._client) for rs in content] return reports_suites
def _get_segments(self): print "segments got called" request = Request(Request.Method.GET, '/segments?rsid={}'.format(self._suite_id)) response = self._client.execute(request) content = response['content'] assert isinstance(content, list) segments = [to_dynamic_object(segment) for segment in content] return segments
def disable_test_GetSeattleWithValidRegcode(self): title = "seattle" self.req = Request() self.req.addField(iPediaFields.getArticle, title) self.req.addField(iPediaFields.regCode, testValidRegCode) self.getResponse([ iPediaFields.transactionId, iPediaFields.articleBody, iPediaFields.articleTitle, iPediaFields.reverseLinks, iPediaFields.formatVersion ]) self.assertFieldEqual(self.rsp, iPediaFields.formatVersion, DEFINITION_FORMAT_VERSION)
def test_NoLookupLimitInUnlockedVersion(self): searchTerms = ["brazil", "seattle", "poland", "comedy"] # make sure to get a unique cookie, to start over self.req = Request() self.req.addField(iPediaFields.getCookie, g_nonUniqueDeviceInfo) self.getResponse([iPediaFields.transactionId, iPediaFields.cookie]) cookie = self.rsp.getField(iPediaFields.cookie) lookupsToDo = g_unregisteredLookupsLimit + 10 for t in range(lookupsToDo): searchTerm = searchTerms[t % len(searchTerms)] self.req = Request() self.req.addField(iPediaFields.cookie, cookie) self.req.addField(iPediaFields.getArticleU, searchTerm) self.getResponse([iPediaFields.transactionId]) self.assertEqual(True, self.rsp.hasField(iPediaFields.articleTitle)) self.assertEqual(True, self.rsp.hasField(iPediaFields.articleBody)) self.assertEqual(True, self.rsp.hasField(iPediaFields.formatVersion)) self.assertFieldEqual(self.rsp, iPediaFields.formatVersion, DEFINITION_FORMAT_VERSION)
def test_VerifyRegCodeAsFirstRequest(self): # this is what client sends when it sends Verify-Register-Code # as the first request ever self.req = Request() self.req.addField(iPediaFields.getArticleCount, None) self.req.addField(iPediaFields.getDatabaseTime, None) self.req.addField(iPediaFields.verifyRegCode, testValidRegCode) self.req.addField(iPediaFields.getCookie, g_exampleDeviceInfo) self.getResponse([ iPediaFields.cookie, iPediaFields.transactionId, iPediaFields.regCodeValid ]) self.assertFieldEqual(self.rsp, iPediaFields.regCodeValid, 1)
def test_GetCookieAndRegCode(self): self.req = Request() self.req.addField(iPediaFields.getCookie, g_exampleDeviceInfo) self.req.addField(iPediaFields.regCode, testValidRegCode) self.getResponse([iPediaFields.transactionId, iPediaFields.error]) self.assertError(ServerErrors.malformedRequest)
def test_ClientInfoMalformed(self): self.req = Request("1", None) self.getResponse([iPediaFields.error]) self.assertError(ServerErrors.requestArgumentMissing)
def test_InvalidProtocolVer(self): self.req = Request(protocolVer="2") self.req.addCookie() self.getResponse([iPediaFields.error, iPediaFields.transactionId]) self.assertError(ServerErrors.invalidProtocolVersion)
def test_InvalidDeviceInfo2(self): self.req = Request() self.req.addField(iPediaFields.getCookie, "PL:blaha") self.req.addField(iPediaFields.getArticle, "seattle") self.getResponse([iPediaFields.transactionId, iPediaFields.error]) self.assertError(ServerErrors.unsupportedDevice)
def test_InvalidCookie(self): # this is guaranteed to be an invalid cookie self.req = Request() self.req.addField(iPediaFields.cookie, "baraba") self.getResponse([iPediaFields.error, iPediaFields.transactionId]) self.assertError(ServerErrors.invalidCookie)