expressly/expressly-plugin-sdk-python3-core

View on GitHub
expressly/tests/api/test_customer_migration_success.py

Summary

Maintainability
C
1 day
Test Coverage
from unittest import TestCase
from httpretty import activate, register_uri, POST
from schematics.validate import validate

from expressly import Api
from expressly.api_responses import MigrationStatusResponse
from expressly.tests import api_dev_url, dummy_api_key, dummy_campaign_customer_uuid


class CustomerMigrationSuccessTest(TestCase):
    def setUp(self):
        self.api = Api(dummy_api_key, api_dev_url, False)

    @activate
    def test_migration_status_migrated(self):
        register_uri(
            POST,
            'http://%s/api/v2/migration/%s/success' % (api_dev_url, dummy_campaign_customer_uuid),
            body=b'{"success":true,"msg":"User registered as migrated"}',
            status=200,
            content_type='application/json'
        )

        response = self.api.send_migration_status(dummy_campaign_customer_uuid)

        self.assertEqual(response.status, 200)
        self.assertIsInstance(response.data, MigrationStatusResponse)
        self.assertTrue(validate(MigrationStatusResponse, response.data))

        self.assertTrue(response.data.success)

    @activate
    def test_migration_status_exists(self):
        register_uri(
            POST,
            'http://%s/api/v2/migration/%s/success' % (api_dev_url, dummy_campaign_customer_uuid),
            body=b'{"success":true,"msg":"User already migrated"}',
            status=200,
            content_type='application/json'
        )

        response = self.api.send_migration_status(dummy_campaign_customer_uuid)

        self.assertEqual(response.status, 200)
        self.assertIsInstance(response.data, MigrationStatusResponse)
        self.assertTrue(validate(MigrationStatusResponse, response.data))

        self.assertTrue(response.data.success)