def test_wrong_format_event(self): logger.info("TEST: test_wrong_format_event") event = {} event['awslogs'] = {} dataBody = {} dataBody['logStream'] = 'TestStream' dataBody['messageType'] = 'DATA_MESSAGE' dataBody['logEvents'] = [] # Adding wrong format log log = "{'timestamp' : '10', 'message' : 'wrong_format', 'id' : '10'}" dataBody['logEvents'].append(log) dataBody['owner'] = 'Test' dataBody['subscriptionFilters'] = ['TestFilters'] dataBody['logGroup'] = 'TestlogGroup' zipTextFile = StringIO() zipper = gzip.GzipFile(mode='wb', fileobj=zipTextFile) zipper.write(json.dumps(dataBody)) zipper.close() encData = base64.b64encode(zipTextFile.getvalue()) event['awslogs']['data'] = encData httpretty.register_uri(httpretty.POST, self._logzioUrl, status=200, content_type="application/json") with self.assertRaises(TypeError): handler(event,None) logger.info("Catched the correct exception, wrong format message")
def test_ok_request(self): logger.info("TEST: test_ok_request") event = self._generate_aws_logs_event(self._random_string_builder) httpretty.register_uri(httpretty.POST, self._logzioUrl, body = "first", status=200, content_type="application/json") try: handler(event['enc'],None) except Exception: assert True,"Failed on handling a legit event. Expected status_code = 200" request = httpretty.HTTPretty.last_request self._checkData(request, event['dec'])
def test_large_body(self): logger.info("TEST: test_large_body") bodysize = 2000 event = self._generate_aws_logs_event(_random_string_builder, bodysize) httpretty.register_uri(httpretty.POST, self._logzioUrl, body = "first", status=200, content_type="application/json") try: handler(event['enc'],None) except Exception: assert True,"Failed on handling a legit event. Expected status_code = 200" request = httpretty.HTTPretty.last_request lastBulkLength = len(request.body.splitlines()) assert lastBulkLength <= 2000, "Logs were not fragmented"
def test_retry_request(self): logger.info("TEST: test_retry_request") event = self._generate_aws_logs_event(self._random_string_builder) httpretty.register_uri(httpretty.POST, self._logzioUrl, responses=[ httpretty.Response(body = "1st Fail", status=500), httpretty.Response(body = "2nd Fail", status=500), httpretty.Response(body = "3rd Success", status=200) ]) try: handler(event['enc'],None) except Exception: assert True,"Should have succeeded on last try" request = httpretty.HTTPretty.last_request self._checkData(request, event['dec'])
def test_bad_request(self): logger.info("TEST: test_bad_request") event = self._generate_aws_logs_event(self._random_string_builder) httpretty.register_uri(httpretty.POST, self._logzioUrl, responses=[ httpretty.Response(body = "first", status=400), httpretty.Response(body = "second", status=401), ]) with self.assertRaises(IOError): handler(event['enc'],None) logger.info("Catched the correct exception. Status code = 400") with self.assertRaises(IOError): handler(event['enc'],None) logger.info("Catched the correct exception. Status code = 401")