Пример #1
0
    def test_get_volume_status(self):
        client, config, volume_model, response = self.get_mocks()

        behavior = VolumesAPI_Behaviors(client, config)

        status = behavior.get_volume_status(self.defaults.volume_id)
        self.assertEqual(status, self.defaults.expected_status)
Пример #2
0
    def test_get_volume_status(self):
        client, config, volume_model, response = self.get_mocks()

        behavior = VolumesAPI_Behaviors(client, config)

        status = behavior.get_volume_status(self.defaults.volume_id)
        self.assertEqual(status, self.defaults.expected_status)
Пример #3
0
    def test_good_response_code_config_wait_period(self):
        client, config, snapshot_model, response = self.get_mocks()

        behavior = VolumesAPI_Behaviors(client, config)
        resp = behavior.wait_for_snapshot_status(
            self.defaults.snapshot_name, self.defaults.expected_status, self.defaults.timeout
        )

        self.assertIsNone(resp)
Пример #4
0
    def test_good_response_code_config_wait_period(self):
        client, config, snapshot_model, response = self.get_mocks()

        behavior = VolumesAPI_Behaviors(client, config)
        resp = behavior.wait_for_snapshot_status(self.defaults.snapshot_name,
                                                 self.defaults.expected_status,
                                                 self.defaults.timeout)

        self.assertIsNone(resp)
Пример #5
0
    def test_good_response_code_manual_poll_rate(self):
        client, config, snapshot_model, response = self.get_mocks()

        behavior = VolumesAPI_Behaviors(client, config)
        resp = behavior.wait_for_snapshot_status(
            self.defaults.snapshot_id,
            self.defaults.expected_status,
            self.defaults.timeout,
            poll_rate=self.defaults.poll_rate)

        self.assertIsNone(resp)
Пример #6
0
    def test_happy_path(self):
        client, config, volume_model, volume_create_response = self.get_mocks()

        behavior = VolumesAPI_Behaviors(client, config)
        behavior.get_volume_status = MagicMock(return_value='available')

        volume_entity = behavior.create_available_volume(
            self.defaults.display_name, self.defaults.size,
            self.defaults.volume_type)

        self.assertIsInstance(volume_entity, VolumeResponse)
Пример #7
0
    def test_happy_path(self):
        client, config, volume_model, volume_create_response = self.get_mocks()

        behavior = VolumesAPI_Behaviors(client, config)
        behavior.get_volume_status = MagicMock(return_value="available")

        volume_entity = behavior.create_available_volume(
            self.defaults.display_name, self.defaults.size, self.defaults.volume_type
        )

        self.assertIsInstance(volume_entity, VolumeResponse)
Пример #8
0
    def test_good_response_code_bad_status(self):
        client, config, volume_model, response = self.get_mocks()

        behavior = VolumesAPI_Behaviors(client, config)
        resp = behavior.wait_for_volume_status(
            self.defaults.volume_name,
            self.defaults.expected_status,
            self.defaults.timeout,
            poll_rate=self.defaults.poll_rate)

        self.assertIsNone(resp)
Пример #9
0
    def test_good_response_code_manual_poll_rate(self):
        client, config, snapshot_model, response = self.get_mocks()

        behavior = VolumesAPI_Behaviors(client, config)
        resp = behavior.wait_for_snapshot_status(
            self.defaults.snapshot_id,
            self.defaults.expected_status,
            self.defaults.timeout,
            poll_rate=self.defaults.poll_rate,
        )

        self.assertIsNone(resp)
Пример #10
0
    def test_good_response_code_bad_status(self):
        client, config, volume_model, response = self.get_mocks()

        behavior = VolumesAPI_Behaviors(client, config)
        resp = behavior.wait_for_volume_status(
            self.defaults.volume_name,
            self.defaults.expected_status,
            self.defaults.timeout,
            poll_rate=self.defaults.poll_rate,
        )

        self.assertIsNone(resp)
Пример #11
0
    def test_timeout_failure(self):
        client, config, volume_model, volume_create_response = self.get_mocks()

        volume_create_response.entity = None
        volume_create_response.status_code = 200

        client.create_volume = MagicMock(return_value=volume_create_response)

        behavior = VolumesAPI_Behaviors(client, config)
        behavior.wait_for_volume_status = MagicMock(side_effect=VolumesAPIBehaviorException)

        with self.assertRaises(VolumesAPIBehaviorException):
            behavior.create_available_volume(self.defaults.display_name, self.defaults.size, self.defaults.volume_type)
Пример #12
0
    def test_good_response_code_empty_entity(self):
        client, config, volume_model, response = self.get_mocks()

        response.entity = None
        response.status_code = '200'
        client.get_volume_info = MagicMock(return_value=response)

        behavior = VolumesAPI_Behaviors(client, config)
        with self.assertRaises(VolumesAPIBehaviorException):
            behavior.wait_for_volume_status(self.defaults.volume_name,
                                            self.defaults.expected_status,
                                            self.defaults.timeout,
                                            poll_rate=self.defaults.poll_rate)
Пример #13
0
    def test_good_response_good_entity_bad_status(self):
        client, config, snapshot_model, response = self.get_mocks()

        recieved_status = "error"
        poll_rate = 1
        snapshot_model.status = recieved_status
        response.entity = snapshot_model
        client.get_snapshot_info = MagicMock(return_value=response)
        behavior = VolumesAPI_Behaviors(client, config)

        with self.assertRaises(VolumesAPIBehaviorException):
            behavior.wait_for_snapshot_status(
                self.defaults.snapshot_name, self.defaults.expected_status, self.defaults.timeout, poll_rate=poll_rate
            )
Пример #14
0
    def test_bad_response_code(self):
        client, config, snapshot_model, response = self.get_mocks()

        response.ok = False
        response.entity = snapshot_model
        response.status_code = '401'
        client.get_snapshot_info = MagicMock(return_value=response)
        behavior = VolumesAPI_Behaviors(client, config)

        with self.assertRaises(VolumesAPIBehaviorException):
            behavior.wait_for_snapshot_status(
                self.defaults.snapshot_name,
                self.defaults.expected_status,
                self.defaults.timeout,
                poll_rate=self.defaults.poll_rate)
Пример #15
0
    def test_good_response_code_empty_entity(self):
        client, config, volume_model, response = self.get_mocks()

        response.entity = None
        response.status_code = "200"
        client.get_volume_info = MagicMock(return_value=response)

        behavior = VolumesAPI_Behaviors(client, config)
        with self.assertRaises(VolumesAPIBehaviorException):
            behavior.wait_for_volume_status(
                self.defaults.volume_name,
                self.defaults.expected_status,
                self.defaults.timeout,
                poll_rate=self.defaults.poll_rate,
            )
Пример #16
0
    def test_good_response_good_entity_bad_status(self):
        client, config, snapshot_model, response = self.get_mocks()

        recieved_status = 'error'
        poll_rate = 1
        snapshot_model.status = recieved_status
        response.entity = snapshot_model
        client.get_snapshot_info = MagicMock(return_value=response)
        behavior = VolumesAPI_Behaviors(client, config)

        with self.assertRaises(VolumesAPIBehaviorException):
            behavior.wait_for_snapshot_status(self.defaults.snapshot_name,
                                              self.defaults.expected_status,
                                              self.defaults.timeout,
                                              poll_rate=poll_rate)
Пример #17
0
    def test_timeout_failure(self):
        client, config, volume_model, volume_create_response = self.get_mocks()

        volume_create_response.entity = None
        volume_create_response.status_code = 200

        client.create_volume = MagicMock(return_value=volume_create_response)

        behavior = VolumesAPI_Behaviors(client, config)
        behavior.wait_for_volume_status = MagicMock(
            side_effect=VolumesAPIBehaviorException)

        with self.assertRaises(VolumesAPIBehaviorException):
            behavior.create_available_volume(self.defaults.display_name,
                                             self.defaults.size,
                                             self.defaults.volume_type)
Пример #18
0
    def test_bad_response_code(self):
        client, config, snapshot_model, response = self.get_mocks()

        response.ok = False
        response.entity = snapshot_model
        response.status_code = "401"
        client.get_snapshot_info = MagicMock(return_value=response)
        behavior = VolumesAPI_Behaviors(client, config)

        with self.assertRaises(VolumesAPIBehaviorException):
            behavior.wait_for_snapshot_status(
                self.defaults.snapshot_name,
                self.defaults.expected_status,
                self.defaults.timeout,
                poll_rate=self.defaults.poll_rate,
            )
Пример #19
0
    def setUpClass(cls):
        super(BlockstorageIntegrationFixture, cls).setUpClass()

        block_config = BlockStorageConfig()
        volumes_config = VolumesAPIConfig()
        cls.poll_frequency = volumes_config.volume_status_poll_frequency
        cls.volume_size = int(volumes_config.min_volume_size)
        cls.volume_type = volumes_config.default_volume_type
        cls.volume_delete_timeout = volumes_config.volume_delete_max_timeout
        cls.volume_create_timeout = volumes_config.volume_create_max_timeout
        block_service = cls.access_data.get_service(
            block_config.identity_service_name)
        block_url = block_service.get_endpoint(
            block_config.region).public_url
        cls.blockstorage_client = VolumesClient(
            block_url, cls.access_data.token.id_,
            cls.marshalling.serializer, cls.marshalling.deserializer)
        cls.blockstorage_behavior = VolumesAPI_Behaviors(
            volumes_api_client=cls.blockstorage_client,
            volumes_api_config=volumes_config)