From 44a3d41ce928f10f719a84d4f4286a363ef33d15 Mon Sep 17 00:00:00 2001 From: Luis San Pablo Date: Thu, 3 Dec 2015 21:12:03 +0000 Subject: [PATCH 1/6] Implement __getnewargs__ for #3628 --- rest_framework/relations.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/rest_framework/relations.py b/rest_framework/relations.py index 40261f3f..744823c4 100644 --- a/rest_framework/relations.py +++ b/rest_framework/relations.py @@ -32,6 +32,9 @@ class Hyperlink(six.text_type): ret.name = name return ret + def __getnewargs__(self): + return(str(self), self.name,) + is_hyperlink = True From dfc84d9818858e0d1199b4478ac806ef2a04fb06 Mon Sep 17 00:00:00 2001 From: Luis San Pablo Date: Thu, 3 Dec 2015 21:17:21 +0000 Subject: [PATCH 2/6] Force Build --- trashfile | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 trashfile diff --git a/trashfile b/trashfile new file mode 100644 index 00000000..e69de29b From 8501f592168799d986c3a9fd9b061ea3022d6a09 Mon Sep 17 00:00:00 2001 From: Luis San Pablo Date: Fri, 4 Dec 2015 05:30:39 +0000 Subject: [PATCH 3/6] Hyperlink Test Case --- tests/test_relations.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tests/test_relations.py b/tests/test_relations.py index fd37e63e..ada2b55d 100644 --- a/tests/test_relations.py +++ b/tests/test_relations.py @@ -206,3 +206,13 @@ class TestManyRelatedField(APISimpleTestCase): mvd = MultiValueDict({'baz': ['bar1', 'bar2']}) assert empty == self.field.get_value(mvd) + +class TestHyperlink: + def setup(self): + self.default_hyperlink = Hyperlink('http://example.com', 'test') + + def test_can_be_pickled(self): + import pickle + upkled = pickle.loads(pickle.dump(self.default_hyperlink)) + assert upickled == self.default_hyperlink + assert upickled.name == self.default_hyperlink.name From 4092cef39255f0ac840f5e7661f0d79bee492ee4 Mon Sep 17 00:00:00 2001 From: Luis San Pablo Date: Fri, 4 Dec 2015 05:42:46 +0000 Subject: [PATCH 4/6] Fixed Test Case for Hyperlink --- tests/test_relations.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/test_relations.py b/tests/test_relations.py index ada2b55d..4107465f 100644 --- a/tests/test_relations.py +++ b/tests/test_relations.py @@ -209,10 +209,10 @@ class TestManyRelatedField(APISimpleTestCase): class TestHyperlink: def setup(self): - self.default_hyperlink = Hyperlink('http://example.com', 'test') + self.default_hyperlink = serializers.Hyperlink('http://example.com', 'test') def test_can_be_pickled(self): import pickle - upkled = pickle.loads(pickle.dump(self.default_hyperlink)) - assert upickled == self.default_hyperlink - assert upickled.name == self.default_hyperlink.name + upkled = pickle.loads(pickle.dumps(self.default_hyperlink)) + assert upkled == self.default_hyperlink + assert upkled.name == self.default_hyperlink.name From 84b5e41af8592fc3e2530fe50846d8078a09feaf Mon Sep 17 00:00:00 2001 From: Luis San Pablo Date: Fri, 4 Dec 2015 05:48:56 +0000 Subject: [PATCH 5/6] Fixes #3628 --- trashfile | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 trashfile diff --git a/trashfile b/trashfile deleted file mode 100644 index e69de29b..00000000 From 4b59681c60ceec6128666c2825677353895aa9d6 Mon Sep 17 00:00:00 2001 From: Luis San Pablo Date: Fri, 4 Dec 2015 05:56:42 +0000 Subject: [PATCH 6/6] Fixed Class Newlines --- tests/test_relations.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/test_relations.py b/tests/test_relations.py index 4107465f..9469cd06 100644 --- a/tests/test_relations.py +++ b/tests/test_relations.py @@ -207,6 +207,7 @@ class TestManyRelatedField(APISimpleTestCase): mvd = MultiValueDict({'baz': ['bar1', 'bar2']}) assert empty == self.field.get_value(mvd) + class TestHyperlink: def setup(self): self.default_hyperlink = serializers.Hyperlink('http://example.com', 'test')