Example #1
0
def CreateWorld():
    if 'file' not in request.files:
        return Response('no file found', status=400)
    file = request.files['file']
    if not allowed_file(file.filename):
        return Response('invalid file type', status=400)
    try:
        campaignName = Campaign.query.get(
            request.form['campaign_id']).name.replace(' ', '_')
        newWorld = World(
            request.form['name'] or None,
            f'/mediafiles/campaigns/{campaignName}/{secure_filename(file.filename)}',
            request.form['center_lat'], request.form['center_lng'],
            request.form['radius'], request.form['campaign_id'] or None)
        db.session.add(newWorld)
        db.session.commit()
        os.makedirs(
            f'/usr/src/app/mediafiles/campaigns/{campaignName}/{newWorld.name.replace(" ", "_")}',
            exist_ok=True)
        file.save(f'/usr/src/app{newWorld.image}')
        data = jsonify(newWorld.to_dict())
        data.status_code = 201
        return data
    except (IntegrityError, AttributeError) as error:
        return Response(error.args[0], status=400)
Example #2
0
    def test_create_success(self):
        world = World('new', '/mediafiles/campaigns/campaign_name/file.jpg', 1,
                      1, 1, 1)
        world.id = 2
        world = world.to_dict()
        del world['campaign']

        response = self.create_world(self.DEFAULT_TOKEN, 'new', 'file.jpg', 1,
                                     1, 1, 1)

        self.assertEqual(response.status_code, 201)
        json = response.get_json()
        self.assertDictContainsSubset(world, json)