summaryrefslogtreecommitdiff
path: root/gitlab/tests
diff options
context:
space:
mode:
Diffstat (limited to 'gitlab/tests')
-rw-r--r--gitlab/tests/test_base.py10
-rw-r--r--gitlab/tests/test_gitlab.py9
-rw-r--r--gitlab/tests/test_gitlabobject.py10
3 files changed, 29 insertions, 0 deletions
diff --git a/gitlab/tests/test_base.py b/gitlab/tests/test_base.py
index c55f000..31dd967 100644
--- a/gitlab/tests/test_base.py
+++ b/gitlab/tests/test_base.py
@@ -15,6 +15,7 @@
# You should have received a copy of the GNU Lesser General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
+import pickle
try:
import unittest
except ImportError:
@@ -86,6 +87,15 @@ class TestRESTObject(unittest.TestCase):
self.assertEqual(self.manager, obj.manager)
self.assertEqual(self.gitlab, obj.manager.gitlab)
+ def test_pickability(self):
+ obj = FakeObject(self.manager, {'foo': 'bar'})
+ original_obj_module = obj._module
+ pickled = pickle.dumps(obj)
+ unpickled = pickle.loads(pickled)
+ self.assertIsInstance(unpickled, FakeObject)
+ self.assertTrue(hasattr(unpickled, '_module'))
+ self.assertEqual(unpickled._module, original_obj_module)
+
def test_attrs(self):
obj = FakeObject(self.manager, {'foo': 'bar'})
diff --git a/gitlab/tests/test_gitlab.py b/gitlab/tests/test_gitlab.py
index 0f39624..027de0c 100644
--- a/gitlab/tests/test_gitlab.py
+++ b/gitlab/tests/test_gitlab.py
@@ -18,6 +18,7 @@
from __future__ import print_function
+import pickle
try:
import unittest
except ImportError:
@@ -890,6 +891,14 @@ class TestGitlab(unittest.TestCase):
email="testuser@test.com", password="testpassword",
ssl_verify=True)
+ def test_pickability(self):
+ original_gl_objects = self.gl._objects
+ pickled = pickle.dumps(self.gl)
+ unpickled = pickle.loads(pickled)
+ self.assertIsInstance(unpickled, Gitlab)
+ self.assertTrue(hasattr(unpickled, '_objects'))
+ self.assertEqual(unpickled._objects, original_gl_objects)
+
def test_credentials_auth_nopassword(self):
self.gl.email = None
self.gl.password = None
diff --git a/gitlab/tests/test_gitlabobject.py b/gitlab/tests/test_gitlabobject.py
index 695f900..f7fd187 100644
--- a/gitlab/tests/test_gitlabobject.py
+++ b/gitlab/tests/test_gitlabobject.py
@@ -21,6 +21,7 @@ from __future__ import print_function
from __future__ import absolute_import
import json
+import pickle
try:
import unittest
except ImportError:
@@ -158,6 +159,15 @@ class TestGitlabObject(unittest.TestCase):
self.assertEqual(data["username"], "testname")
self.assertEqual(data["gitlab"]["url"], "http://localhost/api/v3")
+ def test_pickability(self):
+ gl_object = CurrentUser(self.gl, data={"username": "testname"})
+ original_obj_module = gl_object._module
+ pickled = pickle.dumps(gl_object)
+ unpickled = pickle.loads(pickled)
+ self.assertIsInstance(unpickled, CurrentUser)
+ self.assertTrue(hasattr(unpickled, '_module'))
+ self.assertEqual(unpickled._module, original_obj_module)
+
def test_data_for_gitlab(self):
class FakeObj1(GitlabObject):
_url = '/fake1'