def test_main_ok_already_liked_by_other_user(self):
        params = {
            'pathParameters': {
                'comment_id': 'comment00002'
            },
            'requestContext': {
                'authorizer': {
                    'claims': {
                        'cognito:username': '******'
                    }
                }
            }
        }

        comment_before = self.comment_liked_user_table.scan()['Items']

        response = MeCommentsLikesCreate(params, {}, self.dynamodb).main()

        comment_after = self.comment_liked_user_table.scan()['Items']

        liked_user = self.comment_liked_user_table.get_item(
            Key={
                'comment_id': 'comment00002',
                'user_id': 'like_user_02'
            },
        ).get('Item')

        self.assertEqual(response['statusCode'], 200)
        self.assertEqual(len(comment_after) - len(comment_before), 1)
        self.assertIsNotNone(liked_user)
        self.assertEqual(liked_user['article_id'], self.article_info_items[0]['article_id'])
    def test_call_validate_article_existence(self):
        params = {
            'pathParameters': {
                'comment_id': 'comment00001'
            },
            'requestContext': {
                'authorizer': {
                    'claims': {
                        'cognito:username': '******'
                    }
                }
            }
        }

        mock_lib = MagicMock()
        with patch('me_comments_likes_create.DBUtil', mock_lib):
            mock_lib.get_validated_comment.return_value = self.comment_items[0]

            MeCommentsLikesCreate(params, {}, self.dynamodb).main()
            args, kwargs = mock_lib.validate_article_existence.call_args

            self.assertTrue(mock_lib.validate_article_existence.called)
            self.assertTrue(args[0])
            self.assertEqual(args[1], 'publicId0001')
            self.assertEqual(kwargs['status'], 'public')
    def test_main_ok_already_liked_by_myself(self):
        params = {
            'pathParameters': {
                'comment_id': 'comment00002'
            },
            'requestContext': {
                'authorizer': {
                    'claims': {
                        'cognito:username': '******'
                    }
                }
            }
        }

        comment_before = self.comment_liked_user_table.scan()['Items']

        response = MeCommentsLikesCreate(params, {}, self.dynamodb).main()

        comment_after = self.comment_liked_user_table.scan()['Items']

        liked_user = self.comment_liked_user_table.get_item(
            Key={
                'comment_id': 'comment00002',
                'user_id': 'like_user_02'
            },
        ).get('Item')

        self.assertEqual(response['statusCode'], 400)
        self.assertEqual(json.loads(response['body'])['message'], 'Already exists')
        self.assertEqual(len(comment_after) - len(comment_before), 0)
        self.assertIsNone(liked_user)
    def test_call_get_validated_comment_existence(self):
        params = {
            'pathParameters': {
                'comment_id': 'comment00008'
            },
            'requestContext': {
                'authorizer': {
                    'claims': {
                        'cognito:username': '******'
                    }
                }
            }
        }

        mock_lib = MagicMock()
        with patch('me_comments_likes_create.DBUtil', mock_lib):
            MeCommentsLikesCreate(params, {}, self.dynamodb).main()
            args, _ = mock_lib.get_validated_comment.call_args

            self.assertTrue(mock_lib.get_validated_comment.called)
            self.assertEqual(args[1], 'comment00008')
    def assert_bad_request(self, params):
        function = MeCommentsLikesCreate(params, {}, self.dynamodb)
        response = function.main()

        self.assertEqual(response['statusCode'], 400)
Exemplo n.º 6
0
def lambda_handler(event, context):
    me_comments_likes_create = MeCommentsLikesCreate(event=event,
                                                     context=context,
                                                     dynamodb=dynamodb)
    return me_comments_likes_create.main()