Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import datetime
- import random
- import unittest
- from uuid import uuid4
- from metasdk import MetaApp
- from metasdk.apiclient import ApiClient
- api = ApiClient.build_from_developer_settings("accountmanagement", "v1beta1")
- api.host = "http://localhost:8083"
- # api.host = "http://accountmanagement.apis.devision.io:80"
- DEFAULT_DATA = {"access_scope": {"client_id": 6224,
- "agency_account": "garpun-com2",
- "operation_id": str(uuid4())},
- "engine": "yandex_direct",
- "account_name": "test",
- "currency": "RUB",
- "first_name": "first_name",
- "last_name": "last_name",
- "email": "d.gomonuk@real.ru",
- "date_time_zone": "Europe/Moscow",
- "parent_account_name": "3839668515",
- }
- ERROR_MSG = """Сценарий = {name}
- Testing value = {testing_value}
- Exp. result = {expected_result}
- Act. result = {result}
- """
- class TestStringMethods(unittest.TestCase):
- @classmethod # Метод запускается один раз перед всеми тестами
- def setUpClass(cls):
- # Перед тестами в таблицу adplatform.public.external_connections записали логин
- # (garpun-pm@realweb.ru) от Google Tester (company_id=8561)
- META = MetaApp(include_worker=False)
- db = META.db(db_alias="meta")
- query_select = """UPDATE adplatform.public.external_connections
- SET login='garpun-pm@realweb.ru'
- WHERE company_id=8561 AND system_id='google' """
- db.update(query_select, {})
- def test_google_positive_create_account(self):
- new_data = DEFAULT_DATA.copy()
- new_data["access_scope"]["client_id"] = 6224
- # new_data["access_scope"]["operation_id"] = str(uuid4())
- # new_data["access_scope"]["agency_account"] = "testgarpi@gmail.com"
- new_data["access_scope"]["agency_account"] = "garpun-pm@realweb.ru"
- new_data["engine"] = "GOOGLE_ADS"
- new_data["account_name"] = "test_" + datetime.date.today().__str__()
- resp = api.post("account/add", post_data=new_data)
- self.assertIn(member=new_data["account_name"],
- container=resp.get("rawResponse", {}),
- msg=ERROR_MSG.format(name="Создание аккаунта в 'Google Ads'",
- testing_value=("(account_name) " + new_data["account_name"]),
- expected_result="Created successfully",
- result=resp.get("message")))
- def test_negative_engine(self):
- expected_result = "Authentication data for agency not found"
- testing_value = "nonexistent_engine"
- new_data = DEFAULT_DATA.copy()
- new_data["engine"] = testing_value
- resp = api.post("account/add", post_data=new_data)
- self.assertEqual(first=resp["message"], second=expected_result,
- msg=ERROR_MSG.format(name="Несуществующее поле 'engine' (yandex_direct/GOOGLE_ADS)",
- testing_value=testing_value,
- expected_result=expected_result,
- result=resp["message"]))
- def test_negative_email(self):
- expected_result = "INVALID_ARGUMENT: Not valid email."
- testing_value = "nonexistent_email"
- new_data = DEFAULT_DATA.copy()
- new_data["email"] = testing_value
- resp = api.post("account/add", post_data=new_data)
- self.assertEqual(first=resp["message"], second=expected_result,
- msg=ERROR_MSG.format(name="Несуществующий 'email",
- testing_value=testing_value,
- expected_result=expected_result,
- result=resp["message"]))
- def test_negative_uuid(self):
- expected_result = "INVALID_ARGUMENT: Operation_id must be uuid."
- testing_value = "123456"
- new_data = DEFAULT_DATA.copy()
- new_data["access_scope"]["operation_id"] = testing_value
- resp = api.post("account/add", post_data=new_data)
- self.assertEqual(first=resp["message"], second=expected_result,
- msg=ERROR_MSG.format(name="'operation_id' не в формате 'uuid'",
- testing_value=testing_value,
- expected_result=expected_result,
- result=resp["message"]))
- def test_negative_required(self):
- expected_result = "API didn't receive one of the required parameters: 'first_name'."
- testing_value = "first_name"
- new_data = DEFAULT_DATA.copy()
- new_data.pop(testing_value)
- resp = api.post("account/add", post_data=new_data)
- self.assertEqual(first=resp["message"], second=expected_result,
- msg=ERROR_MSG.format(name="Проверка API на обработку запроса без одного из обязательных полей",
- testing_value=testing_value,
- expected_result=expected_result,
- result=resp["message"]))
- def test_negative_access_scope(self):
- expected_result = "Authentication data for agency not found"
- new_data = DEFAULT_DATA.copy()
- new_data["access_scope"] = {"client_id": 10000,
- "agency_account": "codabra",
- "operation_id": "609fda07-cb8f-4b1b-8b14-06e4ca92a74a"}
- resp = api.post("account/add", post_data=new_data)
- self.assertEqual(first=resp["message"], second=expected_result,
- msg=ERROR_MSG.format(name="Проверка запроса с несуществующего аккаунта",
- testing_value="(неверные данные 'access_scope'",
- expected_result=expected_result,
- result=resp["message"]))
- def test_negative_long_acc_name(self):
- expected_result = "Допустимая длина поля Login - 30 символов"
- testing_value = "account_name_length_more_than_30"
- new_data = DEFAULT_DATA.copy()
- new_data["access_scope"]["agency_account"] = "garpun-com2"
- new_data["engine"] = "yandex_direct"
- new_data["account_name"] = testing_value
- resp = api.post("account/add", post_data=new_data)
- self.assertIn(member=expected_result, container=resp["message"],
- msg=ERROR_MSG.format(name="Создание аккаунта через Яндекс с логином длиннее 30 символов",
- testing_value=testing_value,
- expected_result=expected_result,
- result=resp.get("message")))
- def test_negative_google_wrong_parentAccName(self):
- expected_result = "Parameter parent_account_name is not valid. This should be a valid MCC Adwords."
- testing_value = "wrong_parent_acc_name"
- new_data = DEFAULT_DATA.copy()
- new_data["access_scope"]["agency_account"] = "garpun-pm@realweb.ru"
- new_data["engine"] = "GOOGLE_ADS"
- new_data["account_name"] = "test_" + datetime.date.today().__str__()
- new_data["parent_account_name"] = testing_value
- resp = api.post("account/add", post_data=new_data)
- self.assertEqual(first=resp["message"], second=expected_result,
- msg=ERROR_MSG.format(name="Создание через 'Google Ads' с несущесвующим 'parent_account_name'",
- testing_value=testing_value,
- expected_result=expected_result,
- result=resp.get("message")))
- # @unittest.skip("Этот тест создает аккаунт и должен запускаться осознанно.")
- # def test_google_positive_create_account(self):
- # new_data = DEFAULT_DATA.copy()
- # # new_data["access_scope"]["client_id"] = 6224
- # # new_data["access_scope"]["operation_id"] = str(uuid4())
- #
- # # new_data["access_scope"]["agency_account"] = "testgarpi@gmail.com"
- # new_data["access_scope"]["agency_account"] = "garpun-pm@realweb.ru"
- # new_data["engine"] = "GOOGLE_ADS"
- # new_data["account_name"] = "test_" + datetime.date.today().__str__()
- # resp = api.post("account/add", post_data=new_data)
- # self.assertIn(member=new_data["account_name"],
- # container=resp.get("rawResponse", {}),
- # msg=ERROR_MSG.format(name="Создание аккаунта в 'Google Ads'",
- # testing_value=("(account_name) " + new_data["account_name"]),
- # expected_result="Created successfully",
- # result=resp.get("message")))
- @unittest.skip("Этот тест создает аккаунт и должен запускаться осознанно.")
- def test_yandex_positive_create_account(self):
- new_data = DEFAULT_DATA.copy()
- new_data["account_name"] = "test_" + str(random.randint(1000, 9999))
- resp = api.post("account/add", post_data=new_data)
- self.assertIn(member=new_data["account_name"],
- container=resp.get("rawResponse", {}),
- msg=ERROR_MSG.format(name="Создание аккаунта в 'Yandex Direct'",
- testing_value=("(account_name) " + new_data["account_name"]),
- expected_result="Created successfully",
- result=resp.get("message")))
- if __name__ == "__main__":
- unittest.main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement