Example #1
0
    def testCouchSyncToSQL(self):
        self.deleteAllLogs()
        self.assertEqual(self.getCouchCount(), 0)
        self.assertEqual(self.getSQLCount(), 0)

        # Test Create
        couch_obj = LastReadMessage()
        self.setRandomCouchObjectValues(couch_obj)
        couch_obj.save()

        sleep(1)
        self.assertEqual(self.getCouchCount(), 1)
        self.assertEqual(self.getSQLCount(), 1)

        sql_obj = SQLLastReadMessage.objects.get(couch_id=couch_obj._id)
        self.checkFieldValues(couch_obj, sql_obj, SQLLastReadMessage._migration_get_fields())
        self.assertTrue(LastReadMessage.get_db().get_rev(couch_obj._id).startswith('1-'))

        # Test Update
        self.setRandomCouchObjectValues(couch_obj)
        couch_obj.save()

        sleep(1)
        self.assertEqual(self.getCouchCount(), 1)
        self.assertEqual(self.getSQLCount(), 1)
        sql_obj = SQLLastReadMessage.objects.get(couch_id=couch_obj._id)
        self.checkFieldValues(couch_obj, sql_obj, SQLLastReadMessage._migration_get_fields())
        self.assertTrue(LastReadMessage.get_db().get_rev(couch_obj._id).startswith('2-'))
Example #2
0
    def test_last_read_message(self):
        self.assertIsNone(SQLLastReadMessage.by_anyone(self.domain, 'contact-id-1'))
        self.assertIsNone(SQLLastReadMessage.by_user(self.domain, 'user-id-1', 'contact-id-1'))
        self.assertIsNone(SQLLastReadMessage.by_user(self.domain, 'user-id-2', 'contact-id-1'))

        lrm1 = SQLLastReadMessage.objects.create(
            domain=self.domain,
            read_by='user-id-1',
            contact_id='contact-id-1',
            message_id='message-id-1',
            message_timestamp=datetime(2016, 2, 17, 12, 0),
        )
        self.addCleanup(lrm1.delete)

        self.assertEqual(SQLLastReadMessage.by_anyone(self.domain, 'contact-id-1'), lrm1)
        self.assertEqual(SQLLastReadMessage.by_user(self.domain, 'user-id-1', 'contact-id-1'), lrm1)
        self.assertIsNone(SQLLastReadMessage.by_user(self.domain, 'user-id-2', 'contact-id-1'))

        lrm2 = SQLLastReadMessage.objects.create(
            domain=self.domain,
            read_by='user-id-2',
            contact_id='contact-id-1',
            message_id='message-id-2',
            message_timestamp=datetime(2016, 2, 17, 13, 0),
        )
        self.addCleanup(lrm2.delete)

        self.assertEqual(SQLLastReadMessage.by_anyone(self.domain, 'contact-id-1'), lrm2)
        self.assertEqual(SQLLastReadMessage.by_user(self.domain, 'user-id-1', 'contact-id-1'), lrm1)
        self.assertEqual(SQLLastReadMessage.by_user(self.domain, 'user-id-2', 'contact-id-1'), lrm2)
Example #3
0
    def test_last_read_message(self):
        self.assertIsNone(SQLLastReadMessage.by_anyone(self.domain, 'contact-id-1'))
        self.assertIsNone(SQLLastReadMessage.by_user(self.domain, 'user-id-1', 'contact-id-1'))
        self.assertIsNone(SQLLastReadMessage.by_user(self.domain, 'user-id-2', 'contact-id-1'))

        lrm1 = SQLLastReadMessage.objects.create(
            domain=self.domain,
            read_by='user-id-1',
            contact_id='contact-id-1',
            message_id='message-id-1',
            message_timestamp=datetime(2016, 2, 17, 12, 0),
        )
        self.addCleanup(lrm1.delete)

        self.assertEqual(SQLLastReadMessage.by_anyone(self.domain, 'contact-id-1'), lrm1)
        self.assertEqual(SQLLastReadMessage.by_user(self.domain, 'user-id-1', 'contact-id-1'), lrm1)
        self.assertIsNone(SQLLastReadMessage.by_user(self.domain, 'user-id-2', 'contact-id-1'))

        lrm2 = SQLLastReadMessage.objects.create(
            domain=self.domain,
            read_by='user-id-2',
            contact_id='contact-id-1',
            message_id='message-id-2',
            message_timestamp=datetime(2016, 2, 17, 13, 0),
        )
        self.addCleanup(lrm2.delete)

        self.assertEqual(SQLLastReadMessage.by_anyone(self.domain, 'contact-id-1'), lrm2)
        self.assertEqual(SQLLastReadMessage.by_user(self.domain, 'user-id-1', 'contact-id-1'), lrm1)
        self.assertEqual(SQLLastReadMessage.by_user(self.domain, 'user-id-2', 'contact-id-1'), lrm2)
Example #4
0
 def get_last_read_message(cls):
     return SQLLastReadMessage.by_user(cls.domain, cls.chat_user.get_id, cls.contact1.get_id)
Example #5
0
 def get_last_read_message(cls):
     return SQLLastReadMessage.by_user(cls.domain, cls.chat_user.get_id,
                                       cls.contact1_id)