def test_search_request_page(self):
     # page 指定なし
     params = {'queryStringParameters': {'limit': '10', 'query': 'dummy'}}
     response = SearchArticles(params, {},
                               elasticsearch=self.elasticsearch).main()
     result = json.loads(response['body'])
     self.assertEqual(len(result), 10)
     self.assertRegex(result[0]['article_id'], '^dummy')
     # page 指定
     params = {
         'queryStringParameters': {
             'page': '2',
             'limit': '10',
             'query': 'dummy'
         }
     }
     response = SearchArticles(params, {},
                               elasticsearch=self.elasticsearch).main()
     result = json.loads(response['body'])
     self.assertRegex(result[0]['article_id'], '^dummy')
     self.assertEqual(len(result), 10)
     # page 範囲外
     params = {
         'queryStringParameters': {
             'page': '100001',
             'limit': '10',
             'query': 'dummy'
         }
     }
     response = SearchArticles(params, {},
                               elasticsearch=self.elasticsearch).main()
     self.assertEqual(response['statusCode'], 400)
 def test_search_request_limit(self):
     # limit 指定なし
     params = {'queryStringParameters': {'query': 'dummy'}}
     response = SearchArticles(params, {},
                               elasticsearch=self.elasticsearch).main()
     result = json.loads(response['body'])
     self.assertEqual(len(result), 20)
     # limit 指定
     params = {'queryStringParameters': {'limit': '10', 'query': 'dummy'}}
     response = SearchArticles(params, {},
                               elasticsearch=self.elasticsearch).main()
     result = json.loads(response['body'])
     self.assertEqual(len(result), 10)
Exemple #3
0
    def test_invalid_tag_parmas(self):
        params = {
            'queryStringParameters': {
                'tag': ''
            }
        }
        response = SearchArticles(params, {}, elasticsearch=self.elasticsearch).main()
        self.assertEqual(response['statusCode'], 400)

        params = {
            'queryStringParameters': {
                'tag': 'A' * 26
            }
        }
        response = SearchArticles(params, {}, elasticsearch=self.elasticsearch).main()
        self.assertEqual(response['statusCode'], 400)
Exemple #4
0
 def test_search_match_zero(self):
     params = {
             'queryStringParameters': {
                 'tag': 'vwxyz'
             }
     }
     response = SearchArticles(params, {}, elasticsearch=self.elasticsearch).main()
     result = json.loads(response['body'])
     self.assertEqual(len(result), 0)
Exemple #5
0
 def test_search_request_query_over150(self):
     # query文字列150超
     params = {
             'queryStringParameters': {
                 'limit': '1',
                 'query': 'abcdefghij' * 16
             }
     }
     response = SearchArticles(params, {}, elasticsearch=self.elasticsearch).main()
     self.assertEqual(response['statusCode'], 400)
Exemple #6
0
 def test_search_with_tag_space(self):
     params = {
             'queryStringParameters': {
                 'tag': 'abcde vwxyz'
             }
     }
     response = SearchArticles(params, {}, elasticsearch=self.elasticsearch).main()
     result = json.loads(response['body'])
     self.assertEqual(response['statusCode'], 200)
     self.assertEqual(len(result), 1)
Exemple #7
0
 def test_search_request(self):
     params = {
             'queryStringParameters': {
                 'limit': '1',
                 'query': 'huga',
                 'tag': 'C'
             }
     }
     response = SearchArticles(params, {}, elasticsearch=self.elasticsearch).main()
     result = json.loads(response['body'])
     self.assertEqual(len(result), 1)
Exemple #8
0
 def test_search_with_tag_sort(self):
     params = {
             'queryStringParameters': {
                 'tag': 'd'
             }
     }
     response = SearchArticles(params, {}, elasticsearch=self.elasticsearch).main()
     result = json.loads(response['body'])
     self.assertEqual(response['statusCode'], 200)
     self.assertEqual(len(result), 3)
     self.assertEqual(result[0]['published_at'], 1530112720)
     self.assertEqual(result[1]['published_at'], 1530112710)
     self.assertEqual(result[2]['published_at'], 1530112700)
Exemple #9
0
def lambda_handler(event, context):
    search_articles = SearchArticles(event,
                                     context,
                                     dynamodb=dynamodb,
                                     elasticsearch=elasticsearch)
    return search_articles.main()
Exemple #10
0
 def test_search_no_params(self):
     params = {
         'queryStringParameters': {}
     }
     response = SearchArticles(params, {}, elasticsearch=self.elasticsearch).main()
     self.assertEqual(response['statusCode'], 400)