Ejemplo n.º 1
0
    def test_validate_associations_route(self):
        associations_in = {
            'routes': [
                {'document_id': self.route1.document_id},
                {'document_id': self.route2.document_id}
            ],
            'waypoints': [
                {'document_id': self.waypoint1.document_id}
            ]
        }

        errors = Errors()
        associations = validate_associations_in(
            associations_in, ROUTE_TYPE, errors)

        self.assertEquals(len(errors), 0)

        expected_associations = {
            'routes': [
                {'document_id': self.route1.document_id, 'is_parent': False},
                {'document_id': self.route2.document_id, 'is_parent': False}
            ],
            'waypoints': [
                {'document_id': self.waypoint1.document_id, 'is_parent': True}
            ]
        }
        self.assertEqual(associations, expected_associations)
Ejemplo n.º 2
0
    def test_validate_associations_outing(self):
        associations_in = {
            'routes': [
                {'document_id': self.route1.document_id},
                {'document_id': self.route2.document_id}
            ],
            'users': [
                {'document_id': self.user_profile1.document_id}
            ],
            'waypoints': [
                {'document_id': 'waypoints are ignored'}
            ]
        }

        errors = Errors()
        associations = validate_associations_in(
            associations_in, OUTING_TYPE, errors)

        self.assertEquals(len(errors), 0)

        expected_associations = {
            'users': [
                {'document_id': self.user_profile1.document_id,
                 'is_parent': True}
            ],
            'routes': [
                {'document_id': self.route1.document_id, 'is_parent': True},
                {'document_id': self.route2.document_id, 'is_parent': True}
            ]
        }
        self.assertEqual(associations, expected_associations)
Ejemplo n.º 3
0
    def test_validate_associations_waypoint(self):
        associations_in = {
            # routes are ignored
            'routes': [
                {'document_id': self.route1.document_id}
            ],
            'waypoints': [
                {'document_id': self.waypoint1.document_id}
            ],
            'waypoint_children': [
                {'document_id': self.waypoint2.document_id}
            ],
            'outings': [
                {'document_id': 'outings are ignored'}
            ]
        }

        errors = Errors()
        associations = validate_associations_in(
            associations_in, WAYPOINT_TYPE, errors)

        self.assertEquals(len(errors), 0)

        expected_associations = {
            'waypoints': [
                {'document_id': self.waypoint1.document_id, 'is_parent': True}
            ],
            'waypoint_children': [
                {'document_id': self.waypoint2.document_id, 'is_parent': False}
            ]
        }
        self.assertEqual(associations, expected_associations)
Ejemplo n.º 4
0
    def test_validate_associations_route(self):
        associations_in = {
            'routes': [{
                'document_id': self.route1.document_id
            }, {
                'document_id': self.route2.document_id
            }],
            'waypoints': [{
                'document_id': self.waypoint1.document_id
            }]
        }

        errors = Errors()
        associations = validate_associations_in(associations_in, ROUTE_TYPE,
                                                errors)

        self.assertEqual(len(errors), 0)

        expected_associations = {
            'routes': [{
                'document_id': self.route1.document_id,
                'is_parent': False
            }, {
                'document_id': self.route2.document_id,
                'is_parent': False
            }],
            'waypoints': [{
                'document_id': self.waypoint1.document_id,
                'is_parent': True
            }]
        }
        self.assertEqual(associations, expected_associations)
Ejemplo n.º 5
0
def validate_list_associations_create(request, **kwargs):
    for document in request.validated['images']:
        associations_in = document.get('associations', None)
        if not associations_in:
            continue
        document['associations'] = validate_associations_in(
            associations_in, IMAGE_TYPE, request.errors)
Ejemplo n.º 6
0
    def test_validate_associations_waypoint(self):
        associations_in = {
            # routes are ignored
            'routes': [{
                'document_id': self.route1.document_id
            }],
            'waypoints': [{
                'document_id': self.waypoint1.document_id
            }],
            'waypoint_children': [{
                'document_id': self.waypoint2.document_id
            }],
            'outings': [{
                'document_id': 'outings are ignored'
            }]
        }

        errors = Errors()
        associations = validate_associations_in(associations_in, WAYPOINT_TYPE,
                                                errors)

        self.assertEqual(len(errors), 0)

        expected_associations = {
            'waypoints': [{
                'document_id': self.waypoint1.document_id,
                'is_parent': True
            }],
            'waypoint_children': [{
                'document_id': self.waypoint2.document_id,
                'is_parent': False
            }]
        }
        self.assertEqual(associations, expected_associations)
Ejemplo n.º 7
0
    def test_validate_associations_outing(self):
        associations_in = {
            'routes': [{
                'document_id': self.route1.document_id
            }, {
                'document_id': self.route2.document_id
            }],
            'users': [{
                'document_id': self.user_profile1.document_id
            }],
            'waypoints': [{
                'document_id': 'waypoints are ignored'
            }]
        }

        errors = Errors()
        associations = validate_associations_in(associations_in, OUTING_TYPE,
                                                errors)

        self.assertEqual(len(errors), 0)

        expected_associations = {
            'users': [{
                'document_id': self.user_profile1.document_id,
                'is_parent': True
            }],
            'routes': [{
                'document_id': self.route1.document_id,
                'is_parent': True
            }, {
                'document_id': self.route2.document_id,
                'is_parent': True
            }]
        }
        self.assertEqual(associations, expected_associations)
Ejemplo n.º 8
0
def validate_list_associations_create(request, **kwargs):
    if not request.validated.get('images'):
        return

    for document in request.validated['images']:
        associations_in = document.get('associations', None)
        if not associations_in:
            continue
        document['associations'] = validate_associations_in(
            associations_in, IMAGE_TYPE, request.errors)
Ejemplo n.º 9
0
    def test_validate_associations_invalid_document_id(self):
        associations_in = {'waypoints': [{'document_id': -99999}]}

        errors = Errors()
        associations = validate_associations_in(associations_in, WAYPOINT_TYPE,
                                                errors)

        self.assertIsNone(associations)
        self.assertEqual(len(errors), 1)
        error = errors[0]
        self.assertEqual(error['name'], 'associations.waypoints')
        self.assertEqual(error['description'],
                         'document "-99999" does not exist or is redirected')
Ejemplo n.º 10
0
    def test_validate_associations_invalid_type(self):
        associations_in = {
            'users': [
                {'document_id': self.user_profile1.document_id,
                 'is_parent': True}
            ]
        }

        errors = Errors()
        associations = validate_associations_in(
            associations_in, WAYPOINT_TYPE, errors)

        # users are ignored for waypoints
        self.assertEquals(associations, {})
Ejemplo n.º 11
0
    def test_validate_associations_invalid_type(self):
        associations_in = {
            'users': [{
                'document_id': self.user_profile1.document_id,
                'is_parent': True
            }]
        }

        errors = Errors()
        associations = validate_associations_in(associations_in, WAYPOINT_TYPE,
                                                errors)

        # users are ignored for waypoints
        self.assertEqual(associations, {})
Ejemplo n.º 12
0
    def test_validate_associations_invalid_document_id(self):
        associations_in = {
            'waypoints': [
                {'document_id': -99999}
            ]
        }

        errors = Errors()
        associations = validate_associations_in(
            associations_in, WAYPOINT_TYPE, errors)

        self.assertIsNone(associations)
        self.assertEquals(len(errors), 1)
        error = errors[0]
        self.assertEqual(error['name'], 'associations.waypoints')
        self.assertEqual(
            error['description'], 'document "-99999" does not exist')
Ejemplo n.º 13
0
    def test_validate_associations_invalid_document_type(self):
        associations_in = {
            'routes': [{
                'document_id': self.waypoint1.document_id
            }]
        }

        errors = Errors()
        associations = validate_associations_in(associations_in, ROUTE_TYPE,
                                                errors)

        self.assertIsNone(associations)
        self.assertEqual(len(errors), 1)
        error = errors[0]
        self.assertEqual(error['name'], 'associations.routes')
        self.assertEqual(
            error['description'], 'document "' +
            str(self.waypoint1.document_id) + '" is not of type "r"')
Ejemplo n.º 14
0
    def test_validate_associations_invalid_document_type(self):
        associations_in = {
            'routes': [
                {'document_id': self.waypoint1.document_id}
            ]
        }

        errors = Errors()
        associations = validate_associations_in(
            associations_in, ROUTE_TYPE, errors)

        self.assertIsNone(associations)
        self.assertEquals(len(errors), 1)
        error = errors[0]
        self.assertEqual(error['name'], 'associations.routes')
        self.assertEqual(
            error['description'],
            'document "' + str(self.waypoint1.document_id) +
            '" is not of type "r"')