Revision ca65fc0b

b/kamaki/clients/livetest/astakos.py
31 31
# interpreted as representing official policies, either expressed
32 32
# or implied, of GRNET S.A.
33 33

  
34
from kamaki.clients import livetest
34
from itertools import product
35

  
36
from kamaki.clients import livetest, ClientError
35 37
from kamaki.clients.astakos import AstakosClient
36 38

  
37 39

  
......
50 52
        r = self.client.authenticate()
51 53
        self.assert_dicts_are_equal(r, self._astakos_details)
52 54

  
55
    def test_get_services(self):
56
        self._test_0020_get_services()
57

  
58
    def _test_0020_get_services(self):
59
        for args in (tuple(), (self['remote.default', 'token'],)):
60
            r = self.client.get_services(*args)
61
            services = self._astakos_details['access']['serviceCatalog']
62
            self.assertEqual(len(services), len(r))
63
            for i, service in enumerate(services):
64
                self.assert_dicts_are_equal(r[i], service)
65
        self.assertRaises(ClientError, self.client.get_services, 'wrong_token')
66

  
67
    def test_get_service_details(self):
68
        self._test_0020_get_service_details()
69

  
70
    def _test_0020_get_service_details(self):
71
        parsed_services = dict()
72
        for args in product(
73
                self._astakos_details['access']['serviceCatalog'],
74
                ([tuple(), (self['remote.default', 'token'],)])):
75
            service = args[0]
76
            if service['type'] in parsed_services:
77
                continue
78
            r = self.client.get_service_details(service['type'], *args[1])
79
            self.assert_dicts_are_equal(r, service)
80
            parsed_services[service['type']] = True
81
        self.assertRaises(
82
            ClientError, self.client.get_service_details, 'wrong_token')
83

  
84
    def test_get_service_endpoints(self):
85
        self._test_0020_get_service_endpoints()
86

  
87
    def _test_0020_get_service_endpoints(self):
88
        parsed_services = dict()
89
        for args in product(
90
                self._astakos_details['access']['serviceCatalog'],
91
                ([], [self['remote.default', 'token']])):
92
            service = args[0]
93
            if service['type'] in parsed_services:
94
                continue
95
            for endpoint, with_id in product(
96
                    service['endpoints'], (True, False)):
97
                vid = endpoint['versionId'] if (
98
                    with_id and endpoint['versionId']) else None
99
                end_args = [service['type'], vid] + args[1]
100
                r = self.client.get_service_endpoints(*end_args)
101
                self.assert_dicts_are_equal(r, endpoint)
102
            parsed_services[service['type']] = True
103
        self.assertRaises(
104
            ClientError, self.client.get_service_endpoints, 'wrong_token')
105

  
53 106
    def test_user_info(self):
54 107
        self._test_0020_user_info()
55 108

  

Also available in: Unified diff