Esempio n. 1
0
    def test_version_concurrent_edit(self):
        """Test that a `StaleDataError` is thrown when trying to update a
        waypoint with an old version number.
        """
        waypoint1 = Waypoint(
            waypoint_type="summit", elevation=2203, locales=[WaypointLocale(lang="en", title="A", description="abc")]
        )

        # add the initial waypoint
        self.session.add(waypoint1)
        self.session.flush()
        self.session.expunge(waypoint1)
        version1 = waypoint1.version
        self.assertIsNotNone(version1)

        # change the waypoint
        waypoint2 = self.session.query(Waypoint).get(waypoint1.document_id)
        waypoint2.elevation = 1234
        self.session.merge(waypoint2)
        self.session.flush()
        version2 = waypoint2.version
        self.assertNotEqual(version1, version2)

        self.assertNotEqual(waypoint1.version, waypoint2.version)
        self.assertNotEqual(waypoint1.elevation, waypoint2.elevation)

        # then try to update the waypoint again with the old version
        waypoint1.elevation = 2345
        self.assertRaises(StaleDataError, self.session.merge, waypoint1)
Esempio n. 2
0
    def test_version_concurrent_edit(self):
        """Test that a `StaleDataError` is thrown when trying to update a
        waypoint with an old version number.
        """
        waypoint1 = Waypoint(
            waypoint_type='summit', elevation=2203,
            locales=[
                WaypointLocale(
                    lang='en', title='A', description='abc')
            ]
        )

        # add the initial waypoint
        self.session.add(waypoint1)
        self.session.flush()
        self.session.expunge(waypoint1)
        version1 = waypoint1.version
        self.assertIsNotNone(version1)

        # change the waypoint
        waypoint2 = self.session.query(Waypoint).get(waypoint1.document_id)
        waypoint2.elevation = 1234
        self.session.merge(waypoint2)
        self.session.flush()
        version2 = waypoint2.version
        self.assertNotEqual(version1, version2)

        self.assertNotEqual(waypoint1.version, waypoint2.version)
        self.assertNotEqual(waypoint1.elevation, waypoint2.elevation)

        # then try to update the waypoint again with the old version
        waypoint1.elevation = 2345
        self.assertRaises(StaleDataError, self.session.merge, waypoint1)
Esempio n. 3
0
    def test_version_is_incremented(self):
        waypoint = Waypoint(
            waypoint_type="summit", elevation=2203, locales=[WaypointLocale(lang="en", title="A", description="abc")]
        )
        self.session.add(waypoint)
        self.session.flush()

        version1 = waypoint.version
        self.assertIsNotNone(version1)

        # make a change to the waypoint and check that the version changes
        # once the waypoint is persisted
        waypoint.elevation = 1234
        self.session.merge(waypoint)
        self.session.flush()
        version2 = waypoint.version
        self.assertNotEqual(version1, version2)
Esempio n. 4
0
    def test_version_is_incremented(self):
        waypoint = Waypoint(
            document_id=1, waypoint_type='summit', elevation=2203,
            locales=[
                WaypointLocale(
                    id=2, culture='en', title='A', description='abc')
            ]
        )
        self.session.add(waypoint)
        self.session.flush()

        version1 = waypoint.version
        self.assertIsNotNone(version1)

        # make a change to the waypoint and check that the version changes
        # once the waypoint is persisted
        waypoint.elevation = 1234
        self.session.merge(waypoint)
        self.session.flush()
        version2 = waypoint.version
        self.assertNotEqual(version1, version2)
Esempio n. 5
0
    def test_version_is_incremented(self):
        waypoint = Waypoint(
            waypoint_type='summit', elevation=2203,
            locales=[
                WaypointLocale(
                    lang='en', title='A', description='abc')
            ]
        )
        self.session.add(waypoint)
        self.session.flush()

        version1 = waypoint.version
        self.assertIsNotNone(version1)

        # make a change to the waypoint and check that the version changes
        # once the waypoint is persisted
        waypoint.elevation = 1234
        self.session.merge(waypoint)
        self.session.flush()
        version2 = waypoint.version
        self.assertNotEqual(version1, version2)