def test_dumps_and_loads_with_other_instance(self):
     dumps = self.qserializer.dumps(self.q1)
     self.assertEqual(dumps, self.dumps)
     qserializer2 = QSerializer(base64=True)
     loads = qserializer2.loads(dumps)
     self.assertEqual(qserializer2.serialize(loads),
                      qserializer2.serialize(self.q1))
class TestQSerializer(TestCase):
    """
    test the q serializer
    """

    def setUp(self):
        self.q1 = Q(Q(field1__contains="test") |
                    Q(rel1__field2__exact="test2") &
                    Q(Q(field3="test3") |
                      Q(field3__range=(datetime.datetime(2005, 1, 1),
                                       datetime.datetime(2005, 3, 31)))))
        self.qserializer = QSerializer(base64=True)
        self.dumps = self.qserializer.dumps(self.q1)

    def test_dumps(self):
        dumps = self.qserializer.dumps(self.q1)
        self.assertEqual(dumps, self.dumps)

    def test_loads(self):
        loads = self.qserializer.loads(self.dumps)
        self.assertEqual(self.qserializer.serialize(loads),
                         self.qserializer.serialize(self.q1))

    def test_dumps_and_loads_with_other_instance(self):
        dumps = self.qserializer.dumps(self.q1)
        self.assertEqual(dumps, self.dumps)
        qserializer2 = QSerializer(base64=True)
        loads = qserializer2.loads(dumps)
        self.assertEqual(qserializer2.serialize(loads),
                         qserializer2.serialize(self.q1))