def test_versions_same_order(self):
     v1, v2 = self.add_versions()
     set_order = [v1.pk, v2.pk]
     data = {'versions': set_order}
     serializer = BrowserSerializer(self.browser, data=data, partial=True)
     self.assertTrue(serializer.is_valid())
     new_browser = serializer.save()
     new_order = list(new_browser.versions.values_list('pk', flat=True))
     self.assertEqual(new_order, set_order)
    def test_set_history_current_to_old(self):
        old_history_id = self.browser.history.latest('history_date').history_id
        self.browser.name = {'en': 'Browser'}
        self.browser.save()

        data = {'history_current': old_history_id}
        serializer = BrowserSerializer(self.browser, data=data, partial=True)
        self.assertTrue(serializer.is_valid())
        new_browser = serializer.save()
        histories = new_browser.history.all()
        self.assertEqual(3, len(histories))
        self.assertEqual(new_browser.name, {'en': 'Old Name'})
    def test_set_history_current_to_same(self):
        self.browser.name = {'en': 'Browser'}
        self.browser.save()
        current_history_id = self.browser.history.all()[0].history_id

        data = {'history_current': current_history_id}
        serializer = BrowserSerializer(self.browser, data=data, partial=True)
        self.assertTrue(serializer.is_valid())
        new_browser = serializer.save()
        new_history_id = new_browser.history.all()[0].history_id
        self.assertNotEqual(new_history_id, current_history_id)
        histories = new_browser.history.all()
        self.assertEqual(3, len(histories))