Statistics
| Branch: | Tag: | Revision:

root / snf-pithos-app / pithos / api / test / top_level.py @ 381a548c

History | View | Annotate | Download (2.9 kB)

1
#!/usr/bin/env python
2
#coding=utf8
3

    
4
# Copyright 2011-2013 GRNET S.A. All rights reserved.
5
#
6
# Redistribution and use in source and binary forms, with or
7
# without modification, are permitted provided that the following
8
# conditions are met:
9
#
10
#   1. Redistributions of source code must retain the above
11
#      copyright notice, this list of conditions and the following
12
#      disclaimer.
13
#
14
#   2. Redistributions in binary form must reproduce the above
15
#      copyright notice, this list of conditions and the following
16
#      disclaimer in the documentation and/or other materials
17
#      provided with the distribution.
18
#
19
# THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
20
# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
23
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
26
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
27
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
29
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30
# POSSIBILITY OF SUCH DAMAGE.
31
#
32
# The views and conclusions contained in the software and
33
# documentation are those of the authors and should not be
34
# interpreted as representing official policies, either expressed
35
# or implied, of GRNET S.A.
36

    
37
from pithos.api.test import PithosAPITest
38

    
39
from synnefo.lib import join_urls
40

    
41
class TopLevel(PithosAPITest):
42
    def test_not_allowed_method(self):
43
        url = join_urls(self.pithos_path, '/')
44
        r = self.head(url)
45
        self.assertEqual(r.status_code, 405)
46
        self.assertTrue('Allow' in r)
47
        self.assertEqual(r['Allow'], 'GET')
48
        r = self.put(url, data='')
49
        self.assertEqual(r.status_code, 405)
50
        self.assertTrue('Allow' in r)
51
        self.assertEqual(r['Allow'], 'GET')
52
        r = self.post(url, data='')
53
        self.assertEqual(r.status_code, 405)
54
        self.assertTrue('Allow' in r)
55
        self.assertEqual(r['Allow'], 'GET')
56
        r = self.delete(url)
57
        self.assertEqual(r.status_code, 405)
58
        self.assertTrue('Allow' in r)
59
        self.assertEqual(r['Allow'], 'GET')
60

    
61

    
62
    def test_authenticate(self):
63
        url = join_urls(self.pithos_path, '/')
64
        r = self.get(url, token=None)
65
        self.assertEqual(r.status_code, 400)
66

    
67
        r = self.get(url, token=None, HTTP_X_AUTH_USER=self.user)
68
        self.assertEqual(r.status_code, 400)
69

    
70
        r = self.get(url, token=None, HTTP_X_AUTH_USER=self.user,
71
                     HTTP_X_AUTH_KEY='DummyToken')
72
        self.assertEqual(r.status_code, 204)
73
        self.assertTrue('X-Auth-Token' in r)
74
        self.assertTrue(r['X-Auth-Token'], 'DummyToken')