コード例 #1
0
    def test_update_deploy_without_reals_success(self, test_patch):
        """Deploy update of one pool without reals with success by url.

            Method that factory in networkapi.plugins.factory.PluginFactory
            is mock to test the flow in deploys of pool by url.
        """

        mock = MockPlugin()
        mock.status(True)
        test_patch.return_value = mock

        name_file = 'api_pools/tests/sanity/json/mock/pool_3_put_created_' + \
            'without_reals.json'

        response = self.client.put(
            '/api/v3/pool/deploy/3/',
            data=json.dumps(self.load_json_file(name_file)),
            content_type='application/json',
            HTTP_AUTHORIZATION=self.get_http_authorization('test'))

        self.compare_status(200, response.status_code)

        response = self.client.get(
            '/api/v3/pool/3/',
            content_type='application/json',
            HTTP_AUTHORIZATION=self.get_http_authorization('test'))

        self.compare_status(200, response.status_code)

        self.compare_json(name_file, response.data)
コード例 #2
0
    def test_create_deploy_with_mock_success_url(self, test_patch):
        """Deploy create of one pool with success by url.

            Method that factory in networkapi.plugins.factory.PluginFactory
            is mock to test the flow in deploys of pool by url.
        """
        mock = MockPlugin()
        mock.status(True)
        test_patch.return_value = mock

        name_file = 'api_pools/tests/sanity/json/mock/pool_2_created.json'

        response = self.client.post(
            '/api/v3/pool/deploy/2/',
            content_type='application/json',
            HTTP_AUTHORIZATION=self.get_http_authorization('test'))

        response = self.client.get(
            '/api/v3/pool/2/',
            content_type='application/json',
            HTTP_AUTHORIZATION=self.get_http_authorization('test'))

        self.compare_status(200, response.status_code)

        self.compare_json(name_file, response.data)
コード例 #3
0
    def test_create_deploy_with_mock_success_url(self, test_patch):
        """Deploy create of one pool with success by url.

            Method that factory in networkapi.plugins.factory.PluginFactory
            is mock to test the flow in deploys of pool by url.
        """
        mock = MockPlugin()
        mock.status(True)
        test_patch.return_value = mock

        name_file = 'api_pools/tests/sanity/json/mock/pool_2_created.json'

        response = self.client.post(
            '/api/v3/pool/deploy/2/',
            content_type='application/json',
            HTTP_AUTHORIZATION=self.get_http_authorization('test'))

        response = self.client.get(
            '/api/v3/pool/2/',
            content_type='application/json',
            HTTP_AUTHORIZATION=self.get_http_authorization('test'))

        self.compare_status(200, response.status_code)

        self.compare_json(name_file, response.data)
コード例 #4
0
    def test_create_deploy_with_mock_error(self, test_patch):
        """
            Deploy create of one pool with error.
            Method that factory in networkapi.plugins.factory.PluginFactory
            is mock to test the flow in deploys of pool.
        """

        dp = self.load_json_file(
            'api_pools/tests/unit/json/test_pool_post_not_created.json')
        mock = MockPlugin()
        mock.status(False)
        test_patch.return_value = mock
        dp = dp.get('server_pools')
        self.assertRaises(Exception,
                          facade_pool_deploy.create_real_pool(dp, self.user))
コード例 #5
0
    def test_delete_deploy_with_mock_error(self, test_patch):
        """
            Deploy delete of one pool with error.
            Method that factory in networkapi.plugins.factory.PluginFactory
            is mock to test the flow in deploys of pool.
        """

        dp = self.load_json_file(
            'api_pools/tests/unit/json/test_pool_delete_created.json')
        mock = MockPlugin()
        mock.status(False)
        test_patch.return_value = mock
        dp = dp.get('server_pools')
        self.assertRaises(
            Exception,
            facade_pool_deploy.delete_real_pool(dp, self.user)
        )
コード例 #6
0
    def test_update_deploy_with_mock_success(self, test_patch):
        """
            Deploy update of one pool with success.
            Method that factory in networkapi.plugins.factory.PluginFactory
            is mock to test the flow in deploys of pool.
        """

        dp = self.load_json_file(
            'api_pools/tests/unit/json/test_pool_put_created.json')
        test_patch.return_value = MockPlugin()
        dp = dp.get('server_pools')
        facade_pool_deploy.update_real_pool(dp, self.user)
コード例 #7
0
    def test_update_deployed_pool_rm_half_reals_add_another(self, test_patch):
        """Tries to remove half of the reals in a deployed server pool and
        at same time adding a new real.
        """

        id = 41  # Pool with this ID has four members (IPs 53, 54, 55, 56)

        pool = self.client.get(
            '/api/v3/pool/%s/' % id,
            HTTP_AUTHORIZATION=self.get_http_authorization('test')).data

        self.assertEqual(4,
                         len(pool['server_pools'][0]['server_pool_members']),
                         'This server pool should have four members.')

        test_patch.return_value = MockPlugin()

        qt_reals = 3

        ipsv4 = [{
            'id': 53,
            'ip_formated': '10.0.0.53'
        }, {
            'id': 54,
            'ip_formated': '10.0.0.54'
        }, {
            'id': 57,
            'ip_formated': '10.0.0.57'
        }]

        server_pool_members = [
            self.build_server_pool_member(
                ip__id=ipsv4[i]['id'],
                ip__ip_formated=ipsv4[i]['ip_formated'],
                port_real=8) for i in range(qt_reals)
        ]

        pool['server_pools'][0]['server_pool_members'] = server_pool_members

        facade_pool_deploy.update_real_pool(pool['server_pools'], self.user)

        pool = self.client.get(
            '/api/v3/pool/%s/' % id,
            HTTP_AUTHORIZATION=self.get_http_authorization('test')) \
            .data['server_pools'][0]

        self.assertEqual(3, len(pool['server_pool_members']),
                         'This server pool should have three members.')
        self.assertEqual(True, pool['pool_created'],
                         'After deploy, flag created should be True.')
コード例 #8
0
    def mock_delete_pool(self, id_pool, test_patch):

        pool = self.client.get(
            '/api/v3/pool/%s/' % id_pool,
            HTTP_AUTHORIZATION=self.get_http_authorization('test')).data

        test_patch.return_value = MockPlugin()

        facade_pool_deploy.delete_real_pool(pool['server_pools'], self.user)

        pool = self.client.get(
            '/api/v3/pool/%s/' % id_pool,
            HTTP_AUTHORIZATION=self.get_http_authorization('test')) \
            .data['server_pools'][0]

        self.assertEqual(False, pool['pool_created'],
                         'After undeploy, flag created should be False.')
コード例 #9
0
    def test_update_deployed_pool_removing_half_of_reals(self, test_patch):
        """Tries to remove half of reals in a deployed server pool."""

        id = 40  # Pool with this ID has four members

        pool = self.client.get(
            '/api/v3/pool/%s/' % id,
            HTTP_AUTHORIZATION=self.get_http_authorization('test')).data

        self.assertEqual(4,
                         len(pool['server_pools'][0]['server_pool_members']),
                         'This server pool should have four members.')

        test_patch.return_value = MockPlugin()

        qt_reals = 2

        ipsv4 = [{
            'id': 49,
            'ip_formated': '10.0.0.49'
        }, {
            'id': 50,
            'ip_formated': '10.0.0.50'
        }]

        server_pool_members = [
            self.build_server_pool_member(
                ip__id=ipsv4[i]['id'],
                ip__ip_formated=ipsv4[i]['ip_formated'],
                port_real=8) for i in range(qt_reals)
        ]

        pool['server_pools'][0]['server_pool_members'] = server_pool_members

        facade_pool_deploy.update_real_pool(pool['server_pools'], self.user)

        pool = self.client.get(
            '/api/v3/pool/%s/' % id,
            HTTP_AUTHORIZATION=self.get_http_authorization('test')) \
            .data['server_pools'][0]

        self.assertEqual(2, len(pool['server_pool_members']),
                         'This server pool should have two members.')
        self.assertEqual(True, pool['pool_created'],
                         'After deploy, flag created should be True.')
コード例 #10
0
    def test_update_deployed_pool_without_reals(self, test_patch):
        """Tries to update deployed pool without reals adding two reals to it.
        """

        id = 38

        pool = self.client.get(
            '/api/v3/pool/%s/' % id,
            HTTP_AUTHORIZATION=self.get_http_authorization('test')).data

        test_patch.return_value = MockPlugin()

        qt_reals = 2

        ipsv4 = [{
            'id': 45,
            'ip_formated': '10.0.0.45'
        }, {
            'id': 46,
            'ip_formated': '10.0.0.46'
        }]
        server_pool_members = [
            self.build_server_pool_member(
                ip__id=ipsv4[i]['id'],
                ip__ip_formated=ipsv4[i]['ip_formated'],
                port_real=8) for i in range(qt_reals)
        ]

        pool['server_pools'][0]['server_pool_members'] = server_pool_members

        facade_pool_deploy.update_real_pool(pool['server_pools'], self.user)

        pool = self.client.get(
            '/api/v3/pool/%s/' % id,
            HTTP_AUTHORIZATION=self.get_http_authorization('test'))\
            .data['server_pools'][0]

        self.assertEqual(2, len(pool['server_pool_members']),
                         'This server pool should have two members.')
        self.assertEqual(True, pool['pool_created'],
                         'After deploy, flag created should be True.')
コード例 #11
0
    def test_update_deployed_pool_with_reals_removing_them(self, test_patch):
        """Tries to update pool with reals removing them."""

        id = 39

        pool = self.client.get(
            '/api/v3/pool/%s/' % id,
            HTTP_AUTHORIZATION=self.get_http_authorization('test')).data

        test_patch.return_value = MockPlugin()

        pool['server_pools'][0]['server_pool_members'] = []

        facade_pool_deploy.update_real_pool(pool['server_pools'], self.user)

        pool = self.client.get(
            '/api/v3/pool/%s/' % id,
            HTTP_AUTHORIZATION=self.get_http_authorization('test')) \
            .data['server_pools'][0]

        self.assertEqual(0, len(pool['server_pool_members']),
                         'This server pool should have zero members.')
        self.assertEqual(True, pool['pool_created'],
                         'After deploy, flag created should be True.')