diff options
author | Jenkins <jenkins@review.openstack.org> | 2015-11-11 18:36:18 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2015-11-11 18:36:18 +0000 |
commit | c5d9e6cde8d5f7ab2915996bcd54347a9fa521f9 (patch) | |
tree | 2d57bfc2e52c7a0e4149a63084993992e2e5721b | |
parent | e2f14d00fa8ef8d764f65c9a8853f68af7f3f388 (diff) | |
parent | 7ef6a8fbf98a5da61c40989cc63c0c2261dca98e (diff) | |
download | oslo-utils-c5d9e6cde8d5f7ab2915996bcd54347a9fa521f9.tar.gz |
Merge "Fix get_class_name() on Python 3"2.8.0
-rw-r--r-- | oslo_utils/reflection.py | 21 | ||||
-rw-r--r-- | oslo_utils/tests/test_reflection.py | 7 |
2 files changed, 13 insertions, 15 deletions
diff --git a/oslo_utils/reflection.py b/oslo_utils/reflection.py index f8ef3b1..8b9b535 100644 --- a/oslo_utils/reflection.py +++ b/oslo_utils/reflection.py @@ -68,21 +68,12 @@ def get_class_name(obj, fully_qualified=True): pass else: if built_in: - try: - return obj.__qualname__ - except AttributeError: - return obj.__name__ - pieces = [] - try: - pieces.append(obj.__qualname__) - except AttributeError: - pieces.append(obj.__name__) - if fully_qualified: - try: - pieces.insert(0, obj.__module__) - except AttributeError: - pass - return '.'.join(pieces) + return obj.__name__ + + if fully_qualified and hasattr(obj, '__module__'): + return '%s.%s' % (obj.__module__, obj.__name__) + else: + return obj.__name__ def get_all_class_names(obj, up_to=object): diff --git a/oslo_utils/tests/test_reflection.py b/oslo_utils/tests/test_reflection.py index f9c7e2f..b63ef8b 100644 --- a/oslo_utils/tests/test_reflection.py +++ b/oslo_utils/tests/test_reflection.py @@ -306,6 +306,13 @@ class GetClassNameTest(test_base.BaseTestCase): name = reflection.get_class_name(Class) self.assertEqual('.'.join((__name__, 'Class')), name) + def test_qualified_class(self): + class QualifiedClass(object): + pass + + name = reflection.get_class_name(QualifiedClass) + self.assertEqual('.'.join((__name__, 'QualifiedClass')), name) + def test_instance(self): name = reflection.get_class_name(Class()) self.assertEqual('.'.join((__name__, 'Class')), name) |