Revision c4644612 astakosclient/astakosclient/tests.py

b/astakosclient/astakosclient/tests.py
108 108

  
109 109
def _request_ok(conn, method, url, **kwargs):
110 110
    """This request behaves like original Astakos does"""
111
    if url[0:16] == "/im/authenticate":
111
    if url.startswith("/im/authenticate"):
112 112
        return _req_authenticate(conn, method, url, **kwargs)
113
    elif url[0:14] == "/user_catalogs":
113
    elif url.startswith("/user_catalogs"):
114 114
        return _req_catalogs(conn, method, url, **kwargs)
115
    elif url.startswith("/astakos/api/resources"):
116
        return _req_resources(conn, method, url, **kwargs)
115 117
    else:
116 118
        return _request_status_404(conn, method, url, **kwargs)
117 119

  
118 120

  
119 121
def _req_authenticate(conn, method, url, **kwargs):
120 122
    """Check if user exists and return his profile"""
121
    global user_1, user_2
123
    global user_1, user_2, token_1, token_2
122 124

  
123 125
    # Check input
124 126
    if conn.__class__.__name__ != "HTTPSConnection":
125 127
        return _request_status_302(conn, method, url, **kwargs)
126

  
127 128
    if method != "GET":
128 129
        return _request_status_400(conn, method, url, **kwargs)
129

  
130 130
    token = kwargs['headers']['X-Auth-Token']
131 131
    if token == token_1:
132 132
        user = dict(user_1)
......
150 150
    # Check input
151 151
    if conn.__class__.__name__ != "HTTPSConnection":
152 152
        return _request_status_302(conn, method, url, **kwargs)
153

  
154 153
    if method != "POST":
155 154
        return _request_status_400(conn, method, url, **kwargs)
156

  
157 155
    token = kwargs['headers']['X-Auth-Token']
158 156
    if token != token_1 and token != token_2:
159 157
        return _request_status_401(conn, method, url, **kwargs)
......
183 181
    return ("", simplejson.dumps(return_catalog), 200)
184 182

  
185 183

  
184
def _req_resources(conn, method, url, **kwargs):
185
    """Return quota resources"""
186
    global resources
187

  
188
    # Check input
189
    if conn.__class__.__name__ != "HTTPSConnection":
190
        return _request_status_302(conn, method, url, **kwargs)
191
    if method != "GET":
192
        return _request_status_400(conn, method, url, **kwargs)
193

  
194
    # Return
195
    return ("", simplejson.dumps(resources), 200)
196

  
197

  
186 198
# ----------------------------
187 199
# Mock the actual _doRequest
188 200
def _mock_request(new_requests):
......
266 278
          "display_name": "Storage Space",
267 279
          "name": "pithos+.diskspace"}]}
268 280

  
281
resources = {
282
    "cyclades.vm": {
283
        "unit": None,
284
        "description": "Number of virtual machines",
285
        "service": "cyclades"},
286
    "cyclades.ram": {
287
        "unit": "bytes",
288
        "description": "Virtual machine memory",
289
        "service": "cyclades"}}
290

  
269 291

  
270 292
# --------------------------------------------------------------------
271 293
# The actual tests
......
660 682
            self.fail("Should have raised NoUUID exception")
661 683

  
662 684

  
685
class TestResources(unittest.TestCase):
686
    """Test cases for function get_resources"""
687

  
688
    # ----------------------------------
689
    # Test function call of get_resources
690
    def test_get_resources(self):
691
        global resources
692
        _mock_request([_request_offline, _request_ok])
693
        try:
694
            client = AstakosClient("https://example.com", retry=1)
695
            result = client.get_resources()
696
        except Exception as err:
697
            self.fail("Shouldn't raise Exception %s" % err)
698
        self.assertEqual(resources, result)
699

  
700

  
663 701
# ----------------------------
664 702
# Run tests
665 703
if __name__ == "__main__":

Also available in: Unified diff