예제 #1
0
    def test_create(self):
        t = template_format.parse(wp_template)
        self.parse_stack(t)

        queue = self.stack['MyQueue2']
        self.m.StubOutWithMock(queue, 'client')
        queue.client().MultipleTimes().AndReturn(self.fc)

        fake_q = FakeQueue(queue.physical_resource_name(), auto_create=False)
        self.m.StubOutWithMock(self.fc, 'queue')
        self.fc.queue(queue.physical_resource_name(),
                      auto_create=False).AndReturn(fake_q)
        self.m.StubOutWithMock(fake_q, 'exists')
        fake_q.exists().AndReturn(False)
        self.m.StubOutWithMock(fake_q, 'ensure_exists')
        fake_q.ensure_exists()
        self.fc.queue(queue.physical_resource_name(),
                      auto_create=False).AndReturn(fake_q)
        fake_q.exists().AndReturn(True)
        self.m.StubOutWithMock(fake_q, 'metadata')
        fake_q.metadata(new_meta=queue.properties.get('metadata'))

        self.m.ReplayAll()

        scheduler.TaskRunner(queue.create)()
        self.fc.api_url = 'http://127.0.0.1:8888/v1'
        self.assertEqual('http://127.0.0.1:8888/v1/queues/myqueue',
                         queue.FnGetAtt('href'))

        self.m.VerifyAll()
예제 #2
0
    def test_create_default_name(self):
        t = template_format.parse(wp_template)
        del t['Resources']['MyQueue2']['Properties']['name']
        self.parse_stack(t)

        queue = self.stack['MyQueue2']
        self.m.StubOutWithMock(queue, 'client')
        queue.client().MultipleTimes().AndReturn(self.fc)

        name_match = utils.PhysName(self.stack.name, 'MyQueue2')
        self.m.StubOutWithMock(self.fc, 'queue')
        self.fc.queue(name_match, auto_create=False).WithSideEffects(FakeQueue)

        self.m.ReplayAll()

        scheduler.TaskRunner(queue.create)()

        queue_name = queue.physical_resource_name()
        self.assertEqual(name_match, queue_name)

        self.fc.api_url = 'http://127.0.0.1:8888'
        self.fc.api_version = 2
        self.assertEqual('http://127.0.0.1:8888/v2/queues/' + queue_name,
                         queue.FnGetAtt('href'))

        self.m.VerifyAll()
예제 #3
0
    def test_create(self):
        t = template_format.parse(wp_template)
        self.parse_stack(t)

        queue = self.stack['MyQueue2']
        queue_metadata = queue.properties.get('metadata')
        fake_q = FakeQueue(queue.physical_resource_name(), auto_create=False)
        fake_q.metadata.return_value = queue_metadata
        self.fc.queue.return_value = fake_q

        scheduler.TaskRunner(queue.create)()
        self.assertEqual('http://127.0.0.1:8888/v1.1/queues/myqueue',
                         queue.FnGetAtt('href'))
        self.fc.queue.assert_called_once_with(queue.physical_resource_name(),
                                              auto_create=False)
        fake_q.metadata.assert_called_once_with(new_meta=queue_metadata)
예제 #4
0
    def test_create_default_name(self):
        t = template_format.parse(wp_template)
        del t['Resources']['MyQueue2']['Properties']['name']
        self.parse_stack(t)

        queue = self.stack['MyQueue2']

        name_match = utils.PhysName(self.stack.name, 'MyQueue2')
        self.fc.queue.side_effect = FakeQueue
        scheduler.TaskRunner(queue.create)()
        queue_name = queue.physical_resource_name()
        self.assertEqual(name_match, queue_name)

        self.fc.api_version = 2
        self.assertEqual('http://127.0.0.1:8888/v2/queues/' + queue_name,
                         queue.FnGetAtt('href'))
        self.fc.queue.assert_called_once_with(name_match, auto_create=False)