526
529
self.m.ReplayAll()
528
531
def test_state_defaults(self):
529
stack = parser.Stack(None, 'test_stack', parser.Template({}))
532
stack = parser.Stack(self.ctx, 'test_stack', parser.Template({}))
530
533
self.assertEqual(stack.state, (None, None))
531
534
self.assertEqual(stack.status_reason, '')
536
def test_no_auth_token(self):
537
ctx = dummy_context()
538
ctx.auth_token = None
539
self.m.StubOutWithMock(clients.OpenStackClients, 'keystone')
540
clients.OpenStackClients.keystone().AndReturn(FakeKeystoneClient())
543
stack = parser.Stack(ctx, 'test_stack', parser.Template({}))
544
self.assertEqual('abcd1234', stack.clients.auth_token)
533
548
def test_state(self):
534
stack = parser.Stack(None, 'test_stack', parser.Template({}),
549
stack = parser.Stack(self.ctx, 'test_stack', parser.Template({}),
535
550
action=parser.Stack.CREATE,
536
551
status=parser.Stack.IN_PROGRESS)
537
552
self.assertEqual(stack.state,
1489
1498
self.m.VerifyAll()
1491
1500
def test_stack_name_valid(self):
1492
stack = parser.Stack(None, 's', parser.Template({}))
1493
stack = parser.Stack(None, 'stack123', parser.Template({}))
1494
stack = parser.Stack(None, 'test.stack', parser.Template({}))
1495
stack = parser.Stack(None, 'test_stack', parser.Template({}))
1496
stack = parser.Stack(None, 'TEST', parser.Template({}))
1497
stack = parser.Stack(None, 'test-stack', parser.Template({}))
1501
stack = parser.Stack(self.ctx, 's', parser.Template({}))
1502
stack = parser.Stack(self.ctx, 'stack123', parser.Template({}))
1503
stack = parser.Stack(self.ctx, 'test.stack', parser.Template({}))
1504
stack = parser.Stack(self.ctx, 'test_stack', parser.Template({}))
1505
stack = parser.Stack(self.ctx, 'TEST', parser.Template({}))
1506
stack = parser.Stack(self.ctx, 'test-stack', parser.Template({}))
1499
1508
def test_stack_name_invalid(self):
1500
self.assertRaises(ValueError, parser.Stack, None, '_foo',
1501
parser.Template({}))
1502
self.assertRaises(ValueError, parser.Stack, None, '1bad',
1503
parser.Template({}))
1504
self.assertRaises(ValueError, parser.Stack, None, '.kcats',
1505
parser.Template({}))
1506
self.assertRaises(ValueError, parser.Stack, None, 'test stack',
1507
parser.Template({}))
1508
self.assertRaises(ValueError, parser.Stack, None, ' teststack',
1509
parser.Template({}))
1510
self.assertRaises(ValueError, parser.Stack, None, '^-^',
1511
parser.Template({}))
1512
self.assertRaises(ValueError, parser.Stack, None, '\"stack\"',
1513
parser.Template({}))
1514
self.assertRaises(ValueError, parser.Stack, None, '1234',
1515
parser.Template({}))
1516
self.assertRaises(ValueError, parser.Stack, None, 'cat|dog',
1517
parser.Template({}))
1518
self.assertRaises(ValueError, parser.Stack, None, '$(foo)',
1519
parser.Template({}))
1520
self.assertRaises(ValueError, parser.Stack, None, 'test/stack',
1521
parser.Template({}))
1522
self.assertRaises(ValueError, parser.Stack, None, 'test\stack',
1523
parser.Template({}))
1524
self.assertRaises(ValueError, parser.Stack, None, 'test::stack',
1525
parser.Template({}))
1526
self.assertRaises(ValueError, parser.Stack, None, 'test;stack',
1527
parser.Template({}))
1528
self.assertRaises(ValueError, parser.Stack, None, 'test~stack',
1529
parser.Template({}))
1530
self.assertRaises(ValueError, parser.Stack, None, '#test',
1509
self.assertRaises(ValueError, parser.Stack, self.ctx, '_foo',
1510
parser.Template({}))
1511
self.assertRaises(ValueError, parser.Stack, self.ctx, '1bad',
1512
parser.Template({}))
1513
self.assertRaises(ValueError, parser.Stack, self.ctx, '.kcats',
1514
parser.Template({}))
1515
self.assertRaises(ValueError, parser.Stack, self.ctx, 'test stack',
1516
parser.Template({}))
1517
self.assertRaises(ValueError, parser.Stack, self.ctx, ' teststack',
1518
parser.Template({}))
1519
self.assertRaises(ValueError, parser.Stack, self.ctx, '^-^',
1520
parser.Template({}))
1521
self.assertRaises(ValueError, parser.Stack, self.ctx, '\"stack\"',
1522
parser.Template({}))
1523
self.assertRaises(ValueError, parser.Stack, self.ctx, '1234',
1524
parser.Template({}))
1525
self.assertRaises(ValueError, parser.Stack, self.ctx, 'cat|dog',
1526
parser.Template({}))
1527
self.assertRaises(ValueError, parser.Stack, self.ctx, '$(foo)',
1528
parser.Template({}))
1529
self.assertRaises(ValueError, parser.Stack, self.ctx, 'test/stack',
1530
parser.Template({}))
1531
self.assertRaises(ValueError, parser.Stack, self.ctx, 'test\stack',
1532
parser.Template({}))
1533
self.assertRaises(ValueError, parser.Stack, self.ctx, 'test::stack',
1534
parser.Template({}))
1535
self.assertRaises(ValueError, parser.Stack, self.ctx, 'test;stack',
1536
parser.Template({}))
1537
self.assertRaises(ValueError, parser.Stack, self.ctx, 'test~stack',
1538
parser.Template({}))
1539
self.assertRaises(ValueError, parser.Stack, self.ctx, '#test',
1531
1540
parser.Template({}))
1533
1542
@stack_delete_after