root / test / ganeti.rapi.resources_unittest.py @ 3fc175f0
History | View | Annotate | Download (2.5 kB)
1 | 4cbd4462 | Oleksiy Mishchenko | #!/usr/bin/python
|
---|---|---|---|
2 | 4cbd4462 | Oleksiy Mishchenko | #
|
3 | 4cbd4462 | Oleksiy Mishchenko | |
4 | 4cbd4462 | Oleksiy Mishchenko | # Copyright (C) 2007, 2008 Google Inc.
|
5 | 4cbd4462 | Oleksiy Mishchenko | #
|
6 | 4cbd4462 | Oleksiy Mishchenko | # This program is free software; you can redistribute it and/or modify
|
7 | 4cbd4462 | Oleksiy Mishchenko | # it under the terms of the GNU General Public License as published by
|
8 | 4cbd4462 | Oleksiy Mishchenko | # the Free Software Foundation; either version 2 of the License, or
|
9 | 4cbd4462 | Oleksiy Mishchenko | # (at your option) any later version.
|
10 | 4cbd4462 | Oleksiy Mishchenko | #
|
11 | 4cbd4462 | Oleksiy Mishchenko | # This program is distributed in the hope that it will be useful, but
|
12 | 4cbd4462 | Oleksiy Mishchenko | # WITHOUT ANY WARRANTY; without even the implied warranty of
|
13 | 4cbd4462 | Oleksiy Mishchenko | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
14 | 4cbd4462 | Oleksiy Mishchenko | # General Public License for more details.
|
15 | 4cbd4462 | Oleksiy Mishchenko | #
|
16 | 4cbd4462 | Oleksiy Mishchenko | # You should have received a copy of the GNU General Public License
|
17 | 4cbd4462 | Oleksiy Mishchenko | # along with this program; if not, write to the Free Software
|
18 | 4cbd4462 | Oleksiy Mishchenko | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
19 | 4cbd4462 | Oleksiy Mishchenko | # 02110-1301, USA.
|
20 | 4cbd4462 | Oleksiy Mishchenko | |
21 | 4cbd4462 | Oleksiy Mishchenko | |
22 | 10b207d4 | Oleksiy Mishchenko | """Script for unittesting the RAPI resources module"""
|
23 | 4cbd4462 | Oleksiy Mishchenko | |
24 | 4cbd4462 | Oleksiy Mishchenko | |
25 | 4cbd4462 | Oleksiy Mishchenko | import unittest |
26 | 4cbd4462 | Oleksiy Mishchenko | import tempfile |
27 | 4cbd4462 | Oleksiy Mishchenko | |
28 | 4cbd4462 | Oleksiy Mishchenko | from ganeti import errors |
29 | a0638838 | Oleksiy Mishchenko | from ganeti import http |
30 | a0638838 | Oleksiy Mishchenko | |
31 | 441e7cfd | Oleksiy Mishchenko | from ganeti.rapi import connector |
32 | 441e7cfd | Oleksiy Mishchenko | from ganeti.rapi import rlib1 |
33 | 4cbd4462 | Oleksiy Mishchenko | |
34 | 4cbd4462 | Oleksiy Mishchenko | |
35 | 4cbd4462 | Oleksiy Mishchenko | class MapperTests(unittest.TestCase): |
36 | 4cbd4462 | Oleksiy Mishchenko | """Tests for remote API URI mapper."""
|
37 | 4cbd4462 | Oleksiy Mishchenko | |
38 | 4cbd4462 | Oleksiy Mishchenko | def setUp(self): |
39 | 10b207d4 | Oleksiy Mishchenko | self.map = connector.Mapper()
|
40 | 4cbd4462 | Oleksiy Mishchenko | |
41 | 4cbd4462 | Oleksiy Mishchenko | def _TestUri(self, uri, result): |
42 | 4cbd4462 | Oleksiy Mishchenko | self.assertEquals(self.map.getController(uri), result) |
43 | 4cbd4462 | Oleksiy Mishchenko | |
44 | 4cbd4462 | Oleksiy Mishchenko | def _TestFailingUri(self, uri): |
45 | a0638838 | Oleksiy Mishchenko | self.failUnlessRaises(http.HTTPNotFound, self.map.getController, uri) |
46 | 4cbd4462 | Oleksiy Mishchenko | |
47 | 4cbd4462 | Oleksiy Mishchenko | def testMapper(self): |
48 | 10b207d4 | Oleksiy Mishchenko | """Testing Mapper"""
|
49 | 4cbd4462 | Oleksiy Mishchenko | |
50 | 10b207d4 | Oleksiy Mishchenko | self._TestUri("/tags", (rlib1.R_tags, [], {})) |
51 | 10b207d4 | Oleksiy Mishchenko | self._TestUri("/instances", (rlib1.R_instances, [], {})) |
52 | 4cbd4462 | Oleksiy Mishchenko | |
53 | 4cbd4462 | Oleksiy Mishchenko | self._TestUri('/instances/www.test.com', |
54 | 10b207d4 | Oleksiy Mishchenko | (rlib1.R_instances_name, |
55 | 4cbd4462 | Oleksiy Mishchenko | ['www.test.com'],
|
56 | 4cbd4462 | Oleksiy Mishchenko | {})) |
57 | 4cbd4462 | Oleksiy Mishchenko | |
58 | 4cbd4462 | Oleksiy Mishchenko | self._TestUri('/instances/www.test.com/tags?f=5&f=6&alt=html', |
59 | 10b207d4 | Oleksiy Mishchenko | (rlib1.R_instances_name_tags, |
60 | 4cbd4462 | Oleksiy Mishchenko | ['www.test.com'],
|
61 | 4cbd4462 | Oleksiy Mishchenko | {'alt': ['html'], |
62 | 4cbd4462 | Oleksiy Mishchenko | 'f': ['5', '6'], |
63 | 4cbd4462 | Oleksiy Mishchenko | })) |
64 | 4cbd4462 | Oleksiy Mishchenko | |
65 | 4cbd4462 | Oleksiy Mishchenko | self._TestFailingUri("/tag") |
66 | 4cbd4462 | Oleksiy Mishchenko | self._TestFailingUri("/instances/does/not/exist") |
67 | 4cbd4462 | Oleksiy Mishchenko | |
68 | 4cbd4462 | Oleksiy Mishchenko | |
69 | 4cbd4462 | Oleksiy Mishchenko | class R_RootTests(unittest.TestCase): |
70 | 4cbd4462 | Oleksiy Mishchenko | """Testing for R_root class."""
|
71 | 4cbd4462 | Oleksiy Mishchenko | |
72 | 4cbd4462 | Oleksiy Mishchenko | def setUp(self): |
73 | 441e7cfd | Oleksiy Mishchenko | self.root = connector.R_root(None, None, None, None) |
74 | 4cbd4462 | Oleksiy Mishchenko | |
75 | 4cbd4462 | Oleksiy Mishchenko | def testGet(self): |
76 | 4cbd4462 | Oleksiy Mishchenko | expected = [ |
77 | 4cbd4462 | Oleksiy Mishchenko | {'name': 'info', 'uri': '/info'}, |
78 | 4cbd4462 | Oleksiy Mishchenko | {'name': 'instances', 'uri': '/instances'}, |
79 | 4cbd4462 | Oleksiy Mishchenko | {'name': 'nodes', 'uri': '/nodes'}, |
80 | 4cbd4462 | Oleksiy Mishchenko | {'name': 'os', 'uri': '/os'}, |
81 | 4cbd4462 | Oleksiy Mishchenko | {'name': 'tags', 'uri': '/tags'}, |
82 | 4cbd4462 | Oleksiy Mishchenko | {'name': 'version', 'uri': '/version'}, |
83 | 4cbd4462 | Oleksiy Mishchenko | ] |
84 | 4cbd4462 | Oleksiy Mishchenko | self.assertEquals(self.root.GET(), expected) |
85 | 4cbd4462 | Oleksiy Mishchenko | |
86 | 4cbd4462 | Oleksiy Mishchenko | |
87 | 4cbd4462 | Oleksiy Mishchenko | if __name__ == '__main__': |
88 | 4cbd4462 | Oleksiy Mishchenko | unittest.main() |