Пример #1
0
    def test_archived_geokret_must_not_be_shown_in_cache_details(self):
        geokret_1 = self.blend_geokret(
            owner=self.user_1, created_on_datetime='2018-12-29T16:43:28')
        MovePayload(MOVE_TYPE_DROPPED, geokret=geokret_1)\
            .set_moved_on_datetime('2018-12-29T16:44:57')\
            .set_coordinates()\
            .set_waypoint('ABC123')\
            .post(user=self.user_1)

        geokret_2 = self.blend_geokret(
            owner=self.user_1, created_on_datetime='2018-12-29T16:43:28')
        MovePayload(MOVE_TYPE_DROPPED, geokret=geokret_2)\
            .set_moved_on_datetime('2018-12-29T16:44:57')\
            .set_coordinates()\
            .set_waypoint('ABC123')\
            .post(user=self.user_1)

        GeokretPayload()\
            .get_collection(args={'filter': '[{"name":"last_position","op":"has","val":{"name":"waypoint","op":"eq","val":"ABC123"}}]'})\
            .assertCount(2)

        MovePayload(MOVE_TYPE_ARCHIVED, geokret=geokret_1)\
            .set_moved_on_datetime('2018-12-29T16:45:03')\
            .post(user=self.user_1)

        GeokretPayload()\
            .get_collection(args={'filter': '[{"name":"last_position__waypoint","op":"has","val":"ABC123"}]'})\
            .assertCount(1)
Пример #2
0
    def test_hide_archived_geokrety(self):
        geokret = self.blend_geokret(created_on_datetime="2019-01-01T02:21:26")

        MovePayload(MOVE_TYPE_DROPPED, geokret=geokret)\
            .set_moved_on_datetime("2019-01-01T02:21:38")\
            .set_coordinates(52.07567, 9.35367)\
            .set_waypoint('ABC123')\
            .post(user=self.admin)
        GeokretyInCachePayload()\
            .get_collection(args={'latitude': 52.07567, 'longitude': 9.35367})\
            .assertCount(1)
        GeokretyInCachePayload()\
            .get_collection(args={'waypoint': 'ABC123'})\
            .assertCount(1)

        move = MovePayload(MOVE_TYPE_ARCHIVED, geokret=geokret)\
            .set_moved_on_datetime("2019-01-01T02:21:46")\
            .post(user=self.admin)
        GeokretyInCachePayload()\
            .get_collection(args={'latitude': 52.07567, 'longitude': 9.35367})\
            .assertCount(0)
        GeokretyInCachePayload()\
            .get_collection(args={'waypoint': 'ABC123'})\
            .assertCount(0)

        MovePayload(moved_on_datetime="2019-01-01T02:21:30")\
            .patch(move.id, user=self.admin)
        GeokretyInCachePayload()\
            .get_collection(args={'latitude': 52.07567, 'longitude': 9.35367})\
            .assertCount(1)
        GeokretyInCachePayload()\
            .get_collection(args={'waypoint': 'ABC123'})\
            .assertCount(1)
Пример #3
0
 def test_move_on_datetime_must_not_be_at_the_same_datetime(
         self, move_type, expected):
     geokret = self.blend_geokret(created_on_datetime='2018-10-07T15:30:52')
     payload = MovePayload(move_type, geokret=geokret)\
         .set_coordinates()\
         .set_moved_on_datetime('2018-10-09T19:40:28')
     payload.post(user=self.user_1)
     move = payload.post(user=self.user_1, code=expected)
     if expected == 422:
         move.assertRaiseJsonApiError('/data/attributes/moved-on-datetime')
Пример #4
0
    def test_search_by_coordinates(self):
        geokret = self.blend_geokret(created_on_datetime="2018-12-30T12:56:31")
        geokret2 = self.blend_geokret(
            created_on_datetime="2018-12-30T12:56:31")

        GeokretyInCachePayload()\
            .get_collection(args={'latitude': 52.07567, 'longitude': 9.35367})\
            .assertCount(0)

        MovePayload(MOVE_TYPE_COMMENT, geokret=geokret)\
            .set_moved_on_datetime("2018-12-30T12:57:16")\
            .post(user=self.user_1)
        GeokretyInCachePayload()\
            .get_collection(args={'latitude': 52.07567, 'longitude': 9.35367})\
            .assertCount(0)

        MovePayload(MOVE_TYPE_DIPPED, geokret=geokret)\
            .set_moved_on_datetime("2018-12-30T12:57:25")\
            .set_coordinates(52.07567, 9.35367)\
            .set_waypoint('ABC123')\
            .post(user=self.user_1)
        GeokretyInCachePayload()\
            .get_collection(args={'latitude': 52.07567, 'longitude': 9.35367})\
            .assertCount(0)

        MovePayload(MOVE_TYPE_DROPPED, geokret=geokret)\
            .set_moved_on_datetime("2018-12-30T12:57:33")\
            .set_coordinates(52.07567, 9.35367)\
            .set_waypoint('ABC123')\
            .post(user=self.user_1)
        GeokretyInCachePayload()\
            .get_collection(args={'latitude': 52.07567, 'longitude': 9.35367})\
            .assertCount(1)

        MovePayload(MOVE_TYPE_DROPPED, geokret=geokret2)\
            .set_moved_on_datetime("2018-12-30T12:57:45")\
            .set_coordinates(52.07567, 9.35367)\
            .set_waypoint('ABC123')\
            .post(user=self.user_1)
        GeokretyInCachePayload()\
            .get_collection(args={'latitude': 52.07567, 'longitude': 9.35367})\
            .assertCount(2)

        MovePayload(MOVE_TYPE_DIPPED, geokret=geokret2)\
            .set_moved_on_datetime("2018-12-30T12:57:49")\
            .set_coordinates(42.0, 42.0)\
            .set_waypoint('DEF456')\
            .post(user=self.user_1)
        GeokretyInCachePayload()\
            .get_collection(args={'latitude': 52.07567, 'longitude': 9.35367})\
            .assertCount(1)
Пример #5
0
 def test_field_application_version_may_be_absent(self, move_type):
     geokret = self.blend_geokret()
     MovePayload(move_type, geokret=geokret)\
         .set_coordinates()\
         ._del_attribute('application_version')\
         .post(user=self.user_1)\
         .assertHasAttribute('application-version', None)
Пример #6
0
 def test_field_application_name_no_html(self, application_name, expected):
     geokret = self.blend_geokret()
     MovePayload(MOVE_TYPE_DIPPED, geokret=geokret)\
         .set_coordinates()\
         .set_application_name(application_name)\
         .post(user=self.user_1)\
         .assertHasAttribute('application-name', expected)
Пример #7
0
 def test_field_tracking_code_may_be_ommited_if_id_was_given(self):
     geokret = self.blend_geokret()
     MovePayload(MOVE_TYPE_COMMENT, geokret=geokret)\
         .set_geokret_id(geokret.id)\
         ._del_attribute('tracking-code')\
         .post(user=self.user_1)\
         .assertHasRelationshipGeokretData(geokret.id)
Пример #8
0
    def test_last_move_must_be_updated(self,
                                       move_type1,
                                       move_type2,
                                       result_move2=True):
        geokret = self.blend_geokret(created_on_datetime="2018-12-24T15:35:45")
        if move_type1 is not None:
            MovePayload(move_type1, geokret=geokret, moved_on_datetime="2018-12-24T15:38:11")\
                .set_coordinates()\
                .post(user=self.user_1)
        if move_type2 is not None:
            move2 = MovePayload(move_type2, geokret=geokret, moved_on_datetime="2018-12-24T15:51:12")\
                .set_coordinates()\
                .post(user=self.user_1)

        last_move = move2.id if result_move2 else None
        self.assertEqual(geokret.last_move_id, last_move)
Пример #9
0
 def test_country_is_computed_and_not_overridable(self):
     geokret = self.blend_geokret()
     MovePayload(self.move_type, geokret=geokret)\
         .set_coordinates()\
         ._set_attribute('country', 'pl')\
         .post(user=self.user_1)\
         .assertHasAttribute('country', 'FR')
Пример #10
0
 def test_field_update_datetime_set_automatically(self, move_type):
     geokret = self.blend_geokret()
     MovePayload(move_type, geokret=geokret)\
         .set_coordinates()\
         ._del_attribute('updated-on-datetime')\
         .post(user=self.admin)\
         .assertUpdatedDateTime()
Пример #11
0
 def test_move_on_datetime_must_be_present(self, move_type):
     geokret = self.blend_geokret(created_on_datetime='2018-10-07T15:30:52')
     MovePayload(move_type, geokret=geokret)\
         .set_coordinates()\
         ._del_attribute('moved-on-datetime')\
         .post(user=self.user_1, code=422)\
         .assertRaiseJsonApiError('/data/attributes/moved-on-datetime')
Пример #12
0
 def test_field_longitude_cannot_be_empty(self, longitude):
     geokret = self.blend_geokret()
     MovePayload(self.move_type, geokret=geokret)\
         .set_coordinates()\
         ._set_attribute('longitude', longitude)\
         .post(user=self.user_1, code=422)\
         .assertRaiseJsonApiError('/data/attributes/longitude')
Пример #13
0
 def test_field_application_version(self, move_type):
     geokret = self.blend_geokret()
     MovePayload(move_type, geokret=geokret)\
         .set_coordinates()\
         .set_application_version('1.0.0')\
         .post(user=self.user_1)\
         .assertHasAttribute('application-version', '1.0.0')
Пример #14
0
 def test_field_tracking_code_must_be_alphanumeric(self, tracking_code):
     geokret = self.blend_geokret()
     MovePayload(self.move_type, geokret=geokret)\
         .set_coordinates()\
         .set_tracking_code(tracking_code)\
         .post(user=self.user_1, code=422)\
         .assertRaiseJsonApiError('/data/attributes/tracking-code')
Пример #15
0
 def test_field_waypoint_dont_accept_blank_characters(self, waypoint):
     geokret = self.blend_geokret()
     MovePayload(self.move_type, geokret)\
         .set_coordinates()\
         .set_waypoint(waypoint)\
         .post(user=self.user_1, code=422)\
         .assertRaiseJsonApiError('/data/attributes/waypoint')
Пример #16
0
 def test_field_waypoint_must_be_alphanumeric(self, waypoint):
     geokret = self.blend_geokret()
     MovePayload(self.move_type, geokret)\
         .set_coordinates()\
         .set_waypoint(waypoint)\
         .post(user=self.user_1, code=422)\
         .assertRaiseJsonApiError('/data/attributes/waypoint')
Пример #17
0
 def test_field_waypoint_can_be_empty(self, waypoint):
     geokret = self.blend_geokret()
     MovePayload(self.move_type, geokret)\
         .set_coordinates()\
         .set_waypoint(waypoint)\
         .post(user=self.user_1)\
         .assertHasAttribute('waypoint', '')
Пример #18
0
 def test_distance_is_computed_and_not_overridable(self):
     geokret = self.blend_geokret()
     MovePayload(self.move_type, geokret=geokret)\
         .set_coordinates()\
         ._set_attribute('distance', 666)\
         .post(user=self.user_1)\
         .assertHasAttribute('distance', 0)
Пример #19
0
 def test_field_application_version_too_long(self, move_type):
     geokret = self.blend_geokret()
     MovePayload(move_type, geokret=geokret)\
         .set_coordinates()\
         .set_application_version('1.0.0.1.0.0.1.0.0.1.0.0.1.0.0')\
         .post(user=self.user_1, code=422)\
         .assertRaiseJsonApiError('/data/attributes/application-version')
Пример #20
0
 def test_field_username_is_not_overridable(self, move_type):
     geokret = self.blend_geokret()
     MovePayload(move_type, geokret=geokret)\
         .set_coordinates()\
         .set_username('Some unregistered user')\
         .post(user=self.user_1)\
         .assertHasAttribute('username', '')
Пример #21
0
 def test_move_type_is_mandatory(self, move_type):
     geokret = self.blend_geokret()
     MovePayload(move_type, geokret=geokret)\
         .set_coordinates()\
         ._del_relationships('type')\
         .post(user=self.user_1, code=422)\
         .assertRaiseJsonApiError('/data/relationships/type')
Пример #22
0
 def test_field_comment(self, move_type):
     geokret = self.blend_geokret()
     MovePayload(move_type, geokret=geokret)\
         .set_coordinates()\
         .set_comment('Some text')\
         .post(user=self.user_1)\
         .assertHasAttribute('comment', 'Some text')
Пример #23
0
 def test_relationship_author_defaults_to_current_user(self, move_type):
     geokret = self.blend_geokret()
     MovePayload(move_type, geokret=geokret)\
         .set_coordinates()\
         ._del_relationships('author')\
         .post(user=self.user_1)\
         .assertHasRelationshipAuthorData(self.user_1.id)
Пример #24
0
 def test_relationship_author_is_not_overridable(self, move_type):
     geokret = self.blend_geokret()
     MovePayload(move_type, geokret=geokret)\
         .set_coordinates()\
         .set_author(self.user_2.id)\
         .post(user=self.user_1, code=403)\
         .assertRaiseJsonApiError('/data/relationships/author')
Пример #25
0
 def test_archive_date_must_not_be_before_born_date(self):
     geokret = self.blend_geokret(owner=self.user_1,
                                  created_on_datetime='2018-12-29T16:33:46')
     MovePayload(MOVE_TYPE_ARCHIVED, geokret=geokret)\
         .set_moved_on_datetime('2018-12-29T16:33:00')\
         .post(user=self.user_1, code=422)\
         .assertRaiseJsonApiError('/data/attributes/moved-on-datetime')
Пример #26
0
 def test_relationship_author_can_be_overrided_by_an_admin(self, move_type):
     geokret = self.blend_geokret()
     MovePayload(move_type, geokret=geokret)\
         .set_coordinates()\
         .set_author(self.user_2.id)\
         .post(user=self.admin)\
         .assertHasRelationshipAuthorData(self.user_2.id)
Пример #27
0
 def test_moves_edit_is_forbidden_as(self, username, expected):
     self.user_0 = self.blend_user()
     user = getattr(self, username) if username else None
     geokret = self.blend_geokret(owner=self.user_0)
     move = self.blend_move(type=MOVE_TYPE_DIPPED,
                            geokret=geokret,
                            author=self.user_1)
     response = MovePayload()\
         .set_id(move.id)\
         .set_coordinates()\
         .set_comment("Some new comment")\
         .patch(move.id, user=user, code=expected)
     if expected == 200:
         response.assertHasAttribute('comment', "Some new comment")
     else:
         self.assertNotEqual(move.comment, "Some new comment")
Пример #28
0
 def test_field_application_name(self, move_type):
     geokret = self.blend_geokret()
     MovePayload(move_type, geokret=geokret)\
         .set_coordinates()\
         .set_application_name('Some name')\
         .post(user=self.user_1)\
         .assertHasAttribute('application-name', 'Some name')
Пример #29
0
 def test_field_latitude_longitude_may_be_both_none(self):
     geokret = self.blend_geokret()
     MovePayload(self.move_type, geokret=geokret)\
         .set_coordinates(None, None)\
         .post(user=self.user_1)\
         .assertHasAttribute('latitude', None)\
         .assertHasAttribute('longitude', None)
Пример #30
0
 def test_field_tracking_code_must_be_present_if_id_not_given(self):
     geokret = self.blend_geokret()
     MovePayload(MOVE_TYPE_COMMENT, geokret=geokret)\
         ._del_attribute('tracking-code')\
         ._del_attribute('id')\
         .post(user=self.user_1, code=422)\
         .assertRaiseJsonApiError('/data/attributes/tracking-code')