1import unittest
2import pickle
3
4from common import MTurkCommon
5
6class TestHITPersistence(MTurkCommon):
7	def create_hit_result(self):
8		return self.conn.create_hit(
9			question=self.get_question(), **self.get_hit_params()
10			)
11
12	def test_pickle_hit_result(self):
13		result = self.create_hit_result()
14		new_result = pickle.loads(pickle.dumps(result))
15
16	def test_pickle_deserialized_version(self):
17		"""
18		It seems the technique used to store and reload the object must
19		result in an equivalent object, or subsequent pickles may fail.
20		This tests a double-pickle to elicit that error.
21		"""
22		result = self.create_hit_result()
23		new_result = pickle.loads(pickle.dumps(result))
24		pickle.dumps(new_result)
25
26if __name__ == '__main__':
27	unittest.main()
28