Exemple #1
0
 def test_helper_response_with_cors(self):
     _response = response(http.HTTPStatus.OK, 'message')
     self.assertEqual(_response[Constants.response_status_code()],
                      http.HTTPStatus.OK)
     self.assertEqual(
         _response[Constants.response_headers()][
             HttpConstants.http_header_access_control_allow_origin()], '*')
 def test_app(self):
     from resource_api.insert_resource import app
     event = {Constants.event_body(): "{}"}
     handler_response = app.handler(event, None)
     self.assertEqual(handler_response[Constants.response_status_code()],
                      http.HTTPStatus.BAD_REQUEST,
                      'HTTP Status code not 400')
 def test_handler_missing_event(self):
     from resource_api.modify_resource import app
     dynamodb = self.setup_mock_database('eu-west-1',
                                         'testing')
     handler_modify_response = app.handler(None, None)
     self.assertEqual(handler_modify_response[Constants.response_status_code()], http.HTTPStatus.BAD_REQUEST,
                      'HTTP Status code not 400')
     remove_mock_database(dynamodb)
 def test_app_event_empty_body(self):
     from resource_api.modify_resource import app
     event = {
         "httpMethod": "PUT",
         "body": ""
     }
     handler_response = app.handler(event, None)
     self.assertEqual(handler_response[Constants.response_status_code()], http.HTTPStatus.BAD_REQUEST,
                      'HTTP Status code not 400')
 def test_app_missing_env_region(self):
     del os.environ['REGION']
     from resource_api.modify_resource import app
     app.clear_dynamodb()
     resource = self.generate_mock_resource()
     _event = generate_mock_event(HttpConstants.http_method_put(), resource)
     _handler_response = app.handler(_event, None)
     self.assertEqual(_handler_response[Constants.response_status_code()], http.HTTPStatus.INTERNAL_SERVER_ERROR,
                      'HTTP Status code not 500')
Exemple #6
0
 def test_app_event_invalid_json_in_body(self):
     from resource_api.fetch_resource import app
     event = {
         Constants.event_http_method(): HttpConstants.http_method_get(),
         Constants.event_body(): "asdf"
     }
     handler_response = app.handler(event, None)
     self.assertEqual(handler_response[Constants.response_status_code()], http.HTTPStatus.BAD_REQUEST,
                      'HTTP Status code not 400')
 def test_app_event_empty_body(self):
     from resource_api.insert_resource import app
     event = {
         Constants.event_http_method(): HttpConstants.http_method_post(),
         Constants.event_body(): ""
     }
     handler_response = app.handler(event, None)
     self.assertEqual(handler_response[Constants.response_status_code()],
                      http.HTTPStatus.BAD_REQUEST,
                      'HTTP Status code not 400')
 def test_app_event_invalid_json_in_body(self):
     from resource_api.modify_resource import app
     event = {
         "httpMethod": "PUT",
         "body": "asdf",
         Constants.event_path_parameters(): {Constants.event_path_parameter_identifier(): self.EXISTING_RESOURCE_IDENTIFIER}
     }
     handler_response = app.handler(event, None)
     self.assertEqual(handler_response[Constants.response_status_code()], http.HTTPStatus.BAD_REQUEST,
                      'HTTP Status code not 400')
 def test_handler_missing_resource_in_event_body(self):
     from resource_api.insert_resource.main.RequestHandler import RequestHandler
     dynamodb = self.setup_mock_database('eu-west-1', 'testing')
     request_handler = RequestHandler(dynamodb)
     event = generate_mock_event(HttpConstants.http_method_post(), None)
     handler_insert_response = request_handler.handler(event, None)
     self.assertEqual(
         handler_insert_response[Constants.response_status_code()],
         http.HTTPStatus.BAD_REQUEST, 'HTTP Status code not 400')
     remove_mock_database(dynamodb)
Exemple #10
0
 def test_app_missing_env_region(self):
     del os.environ['REGION']
     from resource_api.fetch_resource import app
     _event = {
         Constants.event_http_method(): HttpConstants.http_method_get(),
         Constants.event_path_parameters(): {Constants.event_path_parameter_identifier(): self.EXISTING_RESOURCE_IDENTIFIER},
     }
     app._dynamodb = None
     _handler_response = app.handler(_event, None)
     self.assertEqual(_handler_response[Constants.response_status_code()], http.HTTPStatus.INTERNAL_SERVER_ERROR,
                      'HTTP Status code not 500')
Exemple #11
0
    def test_app_missing_env_table(self):
        del os.environ['TABLE_NAME']
        from resource_api.fetch_resource import app
        _event = {
            Constants.event_http_method(): HttpConstants.http_method_get(),
            Constants.event_path_parameters(): {Constants.event_path_parameter_identifier(): ''},
        }

        _handler_response = app.handler(_event, None)
        self.assertEqual(_handler_response[Constants.response_status_code()], http.HTTPStatus.INTERNAL_SERVER_ERROR,
                         'HTTP Status code not 500')
Exemple #12
0
    def test_handler_retrieve_resource_missing_event(self):
        from resource_api.fetch_resource.main.RequestHandler import RequestHandler
        _dynamodb = self.setup_mock_database('eu-west-1',
                                            'testing')
        _request_handler = RequestHandler(_dynamodb)

        _handler_retrieve_response = _request_handler.handler(None, None)

        self.assertEqual(_handler_retrieve_response[Constants.response_status_code()], http.HTTPStatus.BAD_REQUEST,
                         'HTTP Status code not 400')
        remove_mock_database(_dynamodb)
 def test_handler_modify_resource(self):
     from resource_api.modify_resource.main.RequestHandler import RequestHandler
     dynamodb = self.setup_mock_database('eu-west-1',
                                         'testing')
     request_handler = RequestHandler(dynamodb)
     resource = self.generate_mock_resource()
     event = generate_mock_event(HttpConstants.http_method_put(), resource)
     handler_modify_response = request_handler.handler(event, None)
     self.assertEqual(handler_modify_response[Constants.response_status_code()], http.HTTPStatus.OK,
                      'HTTP Status code not 200')
     remove_mock_database(dynamodb)
 def test_handler_unknown_http_method_in_event(self):
     from resource_api.modify_resource.main.RequestHandler import RequestHandler
     dynamodb = self.setup_mock_database('eu-west-1',
                                         'testing')
     request_handler = RequestHandler(dynamodb)
     resource = self.generate_mock_resource()
     event = generate_mock_event('INVALID_HTTP_METHOD', resource)
     handler_modify_response = request_handler.handler(event, None)
     self.assertEqual(handler_modify_response[Constants.response_status_code()], http.HTTPStatus.BAD_REQUEST,
                      'HTTP Status code not 400')
     remove_mock_database(dynamodb)
 def test_app_missing_env_region(self):
     del os.environ['REGION']
     from resource_api.insert_resource import app
     app.clear_dynamodb()
     _event = {
         Constants.event_http_method(): HttpConstants.http_method_post(),
         Constants.event_body(): "{}"
     }
     _handler_response = app.handler(_event, None)
     self.assertEqual(_handler_response[Constants.response_status_code()],
                      http.HTTPStatus.INTERNAL_SERVER_ERROR,
                      'HTTP Status code not 500')
Exemple #16
0
 def test_app(self):
     from resource_api.fetch_resource import app
     dynamodb = self.setup_mock_database('eu-west-1', 'testing')
     _event = {
         Constants.event_http_method(): HttpConstants.http_method_get(),
         Constants.event_path_parameters(): {Constants.event_path_parameter_identifier(): self.EXISTING_RESOURCE_IDENTIFIER},
     }
     _handler_response = app.handler(_event, None)
     self.assertEqual(_handler_response[Constants.response_status_code()], http.HTTPStatus.OK,
                      'HTTP Status code not 200')
     _ddb_response = json.loads(_handler_response[Constants.event_body()])
     self.assertEqual(_ddb_response[Constants.ddb_response_attribute_name_count()], 1,
                      'Count is not 1')
     remove_mock_database(dynamodb)
 def test_handler_modify_resource_unknown_resource_identifier_in_event_body(self):
     from resource_api.modify_resource.main.RequestHandler import RequestHandler
     dynamodb = self.setup_mock_database('eu-west-1',
                                         'testing')
     request_handler = RequestHandler(dynamodb)
     resource = self.generate_mock_resource()
     resource['identifier'] = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
     event = generate_mock_event(HttpConstants.http_method_put(), resource)
     handler_modify_response = request_handler.handler(event, None)
     self.assertEqual(handler_modify_response[Constants.response_status_code()], http.HTTPStatus.BAD_REQUEST,
                      'HTTP Status code not 400')
     self.assertEqual(handler_modify_response['body'],
                      'Resource with identifier xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx not found',
                      'Did not get expected error message')
     remove_mock_database(dynamodb)
Exemple #18
0
    def test_handler_retrieve_resource_missing_resource_identifier(self):
        from resource_api.fetch_resource.main.RequestHandler import RequestHandler
        _dynamodb = self.setup_mock_database('eu-west-1',
                                             'testing')
        _request_handler = RequestHandler(_dynamodb)

        _event = {
            Constants.event_http_method(): HttpConstants.http_method_get(),
            Constants.event_path_parameters(): {}
        }

        _handler_retrieve_response = _request_handler.handler(_event, None)

        self.assertEqual(_handler_retrieve_response[Constants.response_status_code()], http.HTTPStatus.BAD_REQUEST,
                         'HTTP Status code not 400')
        remove_mock_database(_dynamodb)
Exemple #19
0
    def test_handler_retrieve_resource_not_found(self):
        from resource_api.fetch_resource.main.RequestHandler import RequestHandler
        _dynamodb = self.setup_mock_database('eu-west-1',
                                             'testing')
        _request_handler = RequestHandler(_dynamodb)

        _event = {
            Constants.event_http_method(): HttpConstants.http_method_get(),
            Constants.event_path_parameters(): {Constants.event_path_parameter_identifier(): 'fbf20333-35a5-4a06-9c58-68ea688a9a8b'}
        }

        _handler_retrieve_response = _request_handler.handler(_event, None)

        self.assertEqual(_handler_retrieve_response[Constants.response_status_code()], http.HTTPStatus.NOT_FOUND,
                         'HTTP Status code not 404')
        remove_mock_database(_dynamodb)
    def test_insert_resource(self):
        from resource_api.insert_resource.main.RequestHandler import RequestHandler
        dynamodb = self.setup_mock_database('eu-west-1', 'testing')
        request_handler = RequestHandler(dynamodb)

        resource = self.generate_mock_resource()
        event = generate_mock_event(HttpConstants.http_method_post(), resource)
        handler_insert_response = request_handler.handler(event, None)

        resource_dict_from_json = json.loads(event[Constants.event_body()])
        resource_inserted = resource_dict_from_json

        self.assertEqual(
            handler_insert_response[Constants.response_status_code()],
            http.HTTPStatus.CREATED, 'HTTP Status code not 201')

        resource_identifier = resource_inserted[Constants.event_identifier()]

        query_results = request_handler.get_table_connection().query(
            KeyConditionExpression=Key(
                Constants.ddb_field_identifier()).eq(resource_identifier),
            ScanIndexForward=True)

        inserted_resource = query_results[
            Constants.ddb_response_attribute_name_items()][0]
        self.assertIsNotNone(
            inserted_resource[Constants.ddb_field_created_date()],
            'Value not persisted as expected')
        self.assertIsNotNone(
            inserted_resource[Constants.ddb_field_modified_date()],
            'Value not persisted as expected')
        self.assertIsNotNone(
            inserted_resource[Constants.ddb_field_entity_description()],
            'Value not persisted as expected')
        self.assertEqual(
            inserted_resource[Constants.ddb_field_modified_date()],
            inserted_resource[Constants.ddb_field_created_date()],
            'Value not persisted as expected')
        self.assertEqual(
            inserted_resource[Constants.ddb_field_entity_description()],
            resource_inserted['entityDescription'],
            'Value not persisted as expected')
        remove_mock_database(dynamodb)
Exemple #21
0
 def test_helper_response(self):
     _response = response(http.HTTPStatus.OK, 'message')
     self.assertEqual(_response[Constants.response_status_code()],
                      http.HTTPStatus.OK)