示例#1
0
    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")
示例#2
0
    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"
示例#4
0
    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'])
示例#5
0
    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")