diff options
| author | Joe Gordon <joe.gordon0@gmail.com> | 2015-01-27 12:59:15 -0800 |
|---|---|---|
| committer | Joe Gordon <joe.gordon0@gmail.com> | 2015-01-27 13:06:06 -0800 |
| commit | 3561772f8b0cfee746af53fa228375b2ec7dfd9d (patch) | |
| tree | db17dcd13f893639354b48b9288cbbd407d56b0b /novaclient/tests/unit/test_base.py | |
| parent | 7544dcb4ea92247c1e8fa97b8f0aba566e33ca48 (diff) | |
| download | python-novaclient-3561772f8b0cfee746af53fa228375b2ec7dfd9d.tar.gz | |
Move unit tests into unit test directory
In order to pave the way for functional testing, move existing unit
tests into a directory labeled unit. A subsequent patch will add a
directory for functional tests.
Change-Id: I0adb8b9f14451acb382c725d31f5387b4b6d82bb
Diffstat (limited to 'novaclient/tests/unit/test_base.py')
| -rw-r--r-- | novaclient/tests/unit/test_base.py | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/novaclient/tests/unit/test_base.py b/novaclient/tests/unit/test_base.py new file mode 100644 index 00000000..d3fc6c75 --- /dev/null +++ b/novaclient/tests/unit/test_base.py @@ -0,0 +1,69 @@ +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from novaclient import base +from novaclient import exceptions +from novaclient.tests.unit import utils +from novaclient.tests.unit.v1_1 import fakes +from novaclient.v1_1 import flavors + + +cs = fakes.FakeClient() + + +class BaseTest(utils.TestCase): + + def test_resource_repr(self): + r = base.Resource(None, dict(foo="bar", baz="spam")) + self.assertEqual("<Resource baz=spam, foo=bar>", repr(r)) + + def test_getid(self): + self.assertEqual(4, base.getid(4)) + + class TmpObject(object): + id = 4 + self.assertEqual(4, base.getid(TmpObject)) + + def test_resource_lazy_getattr(self): + f = flavors.Flavor(cs.flavors, {'id': 1}) + self.assertEqual('256 MB Server', f.name) + cs.assert_called('GET', '/flavors/1') + + # Missing stuff still fails after a second get + self.assertRaises(AttributeError, getattr, f, 'blahblah') + + def test_eq(self): + # Two resources of the same type with the same id: equal + r1 = base.Resource(None, {'id': 1, 'name': 'hi'}) + r2 = base.Resource(None, {'id': 1, 'name': 'hello'}) + self.assertEqual(r1, r2) + + # Two resoruces of different types: never equal + r1 = base.Resource(None, {'id': 1}) + r2 = flavors.Flavor(None, {'id': 1}) + self.assertNotEqual(r1, r2) + + # Two resources with no ID: equal if their info is equal + r1 = base.Resource(None, {'name': 'joe', 'age': 12}) + r2 = base.Resource(None, {'name': 'joe', 'age': 12}) + self.assertEqual(r1, r2) + + def test_findall_invalid_attribute(self): + # Make sure findall with an invalid attribute doesn't cause errors. + # The following should not raise an exception. + cs.flavors.findall(vegetable='carrot') + + # However, find() should raise an error + self.assertRaises(exceptions.NotFound, + cs.flavors.find, + vegetable='carrot') |
