示例#1
0
    def setUp(self):
        super(TestGetAPI, self).setUp()
        self.p1_history, self.p2_history, self.p3_history = [], [], []

        self.t1 = datetime.utcfromtimestamp(10)
        p1 = UserTable(**self.p1)
        p3 = UserTable(**self.p3)
        with mock.patch('versionalchemy.models.datetime') as p:
            p.now.return_value = self.t1
            self.session.add_all([p1, p3])
            self.session.flush()
            self.p1_history.append(self._history(p1, self.t1, 0))
            self.p3_history.append(self._history(p3, self.t1, 0))

        self.t2 = datetime.utcfromtimestamp(20)
        p1.col1 = 'change1'
        p2 = UserTable(**self.p2)
        with mock.patch('versionalchemy.models.datetime') as p:
            p.now.return_value = self.t2
            self.session.add_all([p1, p2])
            self.session.flush()
            self.p1_history.append(self._history(p1, self.t2, 1))
            self.p2_history.append(self._history(p2, self.t2, 0))

        self.t3 = datetime.utcfromtimestamp(30)
        p1.col3 = False
        p1.col1 = 'change2'
        with mock.patch('versionalchemy.models.datetime') as p:
            p.now.return_value = self.t3
            self.session.add(p1)
            self.session.flush()
            self.p1_history.append(self._history(p1, self.t3, 2))

        self.t4 = datetime.utcfromtimestamp(40)
        p1.col2 = 15
        p2.col2 = 12
        with mock.patch('versionalchemy.models.datetime') as p:
            p.now.return_value = self.t4
            self.session.add_all([p1, p2])
            self.session.flush()
            self.p1_history.append(self._history(p1, self.t4, 3))
            self.p2_history.append(self._history(p2, self.t4, 1))
示例#2
0
    def setUp(self):
        super(TestDeleteAPI, self).setUp()

        p1 = UserTable(**self.p1)
        p3 = UserTable(**self.p3)
        self.session.add_all([p1, p3])
        self.session.flush()

        p1.col1 = 'change1'
        p2 = UserTable(**self.p2)
        self.session.add_all([p1, p2])
        self.session.flush()

        p1.col3 = False
        p1.col1 = 'change2'
        self.session.add(p1)
        self.session.flush()

        p1.col2 = 15
        p2.col2 = 12
        self.session.add_all([p1, p2])
        self.session.flush()
示例#3
0
    def test_multiple_product_updates(self):
        """
        Update a product multiple times and ensure each one gets
        correctly versioned.
        """
        p = UserTable(**self.p1)
        self._add_and_test_version(p, 0)

        p.col1 = 'new'
        p.col2 = -1
        self._add_and_test_version(p, 1)

        p.col1 = 'third change'
        p.col2 = 139
        p.col3 = False
        self._add_and_test_version(p, 2)

        self._verify_row(
            dict(self.p1, **{
                'col1': 'third change',
                'col2': 139,
                'col3': False,
            }), 1)
        self._verify_archive(self.p1, 0)
        self._verify_archive(dict(self.p1, **{
            'col1': 'new',
            'col2': -1,
        }), 1)
        self._verify_archive(dict(
            self.p1, **{
                'col1': 'third change',
                'col2': 139,
                'col3': False,
            }),
                             2,
                             log_id=p.va_id)