コード例 #1
0
    def test_get_by_id_restaurant_cached(self):
        payload = t_data.restaurant_1_full_payload()
        restaurant_id = self.post_restaurant(payload)
        self.restaurants.append(restaurant_id)
        self.get_restaurant(restaurant_id, payload)
        self.get_restaurant(restaurant_id, payload)

        with self.connection.cursor() as cursor:
            query = """
                UPDATE restaurant
                SET service_type='shop', cuisine='alcohol'
                WHERE id='{}'
            """.format(restaurant_id)
            cursor.execute(query)

        self.get_restaurant(restaurant_id, payload)

        with self.connection.cursor() as cursor:
            query = """
                SELECT service_type, cuisine
                FROM restaurant
                WHERE id='{}'
            """.format(restaurant_id)
            cursor.execute(query)
            res = cursor.fetchone()
            self.assertEqual(res[0], "shop",
                             "DB was not updated, possible false positive")
            self.assertEqual(res[1], "alcohol",
                             "DB was not updated, possible false positive")

        self.get_restaurant(restaurant_id, payload)
コード例 #2
0
    def test_creation_fails_on_missing_required_fields(self):
        payload = t_data.restaurant_1_full_payload()
        del payload['name']

        error_response = self.post_restaurant_expected_fail(payload)
        self.assertEqual(error_response.json(),
                         {'name': ['Missing data for required field.']})
        self.assertEqual(error_response.status_code, 400)
コード例 #3
0
    def test_delete_restaurant(self):
        payload = t_data.restaurant_1_full_payload()
        restaurant_id = self.post_restaurant(payload)
        self.restaurants.append(restaurant_id)
        self.get_restaurant(restaurant_id, payload)

        self.delete_restaurant(restaurant_id)
        self.get_restaurant(restaurant_id, payload, 404)

        self.delete_restaurant(restaurant_id, 404)
コード例 #4
0
    def test_update_fails_on_wrong_data_type(self):
        payload = t_data.restaurant_1_full_payload()
        restaurant_id = self.post_restaurant(payload)
        self.restaurants.append(restaurant_id)

        payload['tags'] = "burger"
        error_response = self.post_restaurant_expected_fail(payload)

        self.assertEqual(error_response.json(),
                         {'tags': ['Not a valid list.']})
        self.assertEqual(error_response.status_code, 400)
コード例 #5
0
    def test_update_restaurant(self):
        initial_payload = t_data.restaurant_1_full_payload()
        update_1_payload = t_data.restaurant_1_only_required_payload()
        update_2_payload = t_data.restaurant_2_full_payload()

        restaurant_id = self.post_restaurant(initial_payload)
        self.restaurants.append(restaurant_id)
        self.get_restaurant(restaurant_id, initial_payload)

        self.update_restaurant(restaurant_id, update_1_payload)
        self.get_restaurant(restaurant_id, update_1_payload)

        self.update_restaurant(restaurant_id, initial_payload)
        self.get_restaurant(restaurant_id, initial_payload)

        self.update_restaurant(restaurant_id, update_2_payload)
        self.get_restaurant(restaurant_id, update_2_payload)
コード例 #6
0
class TestCRUD(E2ETestBase):
    @parameterized.expand([
        ("full payload", t_data.restaurant_1_full_payload()),
        ("minimal payload", t_data.restaurant_1_only_required_payload())
    ])
    def test_post_get_restaurant(self, name, payload):
        restaurant_id = self.post_restaurant(payload)
        self.restaurants.append(restaurant_id)
        self.get_restaurant(restaurant_id, payload)

    def test_update_restaurant(self):
        initial_payload = t_data.restaurant_1_full_payload()
        update_1_payload = t_data.restaurant_1_only_required_payload()
        update_2_payload = t_data.restaurant_2_full_payload()

        restaurant_id = self.post_restaurant(initial_payload)
        self.restaurants.append(restaurant_id)
        self.get_restaurant(restaurant_id, initial_payload)

        self.update_restaurant(restaurant_id, update_1_payload)
        self.get_restaurant(restaurant_id, update_1_payload)

        self.update_restaurant(restaurant_id, initial_payload)
        self.get_restaurant(restaurant_id, initial_payload)

        self.update_restaurant(restaurant_id, update_2_payload)
        self.get_restaurant(restaurant_id, update_2_payload)

    def test_delete_restaurant(self):
        payload = t_data.restaurant_1_full_payload()
        restaurant_id = self.post_restaurant(payload)
        self.restaurants.append(restaurant_id)
        self.get_restaurant(restaurant_id, payload)

        self.delete_restaurant(restaurant_id)
        self.get_restaurant(restaurant_id, payload, 404)

        self.delete_restaurant(restaurant_id, 404)

    def test_creation_fails_on_wrong_data_type(self):
        payload_all_fields_incorrect = t_data.restaurant_with_incorrect_types()
        expected_error_response = t_data.error_response_for_incorrect_types()
        error_response = self.post_restaurant_expected_fail(
            payload_all_fields_incorrect)

        self.assertEqual(error_response.json(), expected_error_response)
        self.assertEqual(error_response.status_code, 400)

    def test_creation_fails_on_missing_required_fields(self):
        payload = t_data.restaurant_1_full_payload()
        del payload['name']

        error_response = self.post_restaurant_expected_fail(payload)
        self.assertEqual(error_response.json(),
                         {'name': ['Missing data for required field.']})
        self.assertEqual(error_response.status_code, 400)

    def test_update_fails_on_wrong_data_type(self):
        payload = t_data.restaurant_1_full_payload()
        restaurant_id = self.post_restaurant(payload)
        self.restaurants.append(restaurant_id)

        payload['tags'] = "burger"
        error_response = self.post_restaurant_expected_fail(payload)

        self.assertEqual(error_response.json(),
                         {'tags': ['Not a valid list.']})
        self.assertEqual(error_response.status_code, 400)

    def test_update_fails_on_missing_required_fields(self):
        payload = t_data.restaurant_1_full_payload()
        restaurant_id = self.post_restaurant(payload)
        self.restaurants.append(restaurant_id)

        del payload['name']

        error_response = self.post_restaurant_expected_fail(payload)
        self.assertEqual(error_response.json(),
                         {'name': ['Missing data for required field.']})
        self.assertEqual(error_response.status_code, 400)