Exemplo n.º 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)
Exemplo n.º 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)
Exemplo n.º 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')
Exemplo n.º 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)
Exemplo n.º 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)
Exemplo n.º 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)
Exemplo n.º 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)
Exemplo n.º 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)
Exemplo n.º 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')
Exemplo n.º 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()
Exemplo n.º 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')
Exemplo n.º 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')
Exemplo n.º 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')
Exemplo n.º 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')
Exemplo n.º 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')
Exemplo n.º 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')
Exemplo n.º 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', '')
Exemplo n.º 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)
Exemplo n.º 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')
Exemplo n.º 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', '')
Exemplo n.º 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')
Exemplo n.º 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')
Exemplo n.º 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)
Exemplo n.º 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')
Exemplo n.º 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')
Exemplo n.º 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)
Exemplo n.º 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")
Exemplo n.º 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')
Exemplo n.º 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)
Exemplo n.º 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')