def test_09_country_new(self): new_country = Country( iso_code=self.country['iso_code'], iso_code_long=self.country['iso_code_long'], short_name=self.country['short_name'], formal_name=self.country['formal_name'], demonym=self.country['demonym'], country_code=self.country['country_code'], continental_code=self.country['continental_code'], coordinates=self.country['coordinates'], elevation=self.country['elevation'], elevation_low=self.country['elevation_low'], area=self.country['area'], land=self.country['land'], fertility=self.country['fertility'], population=self.country['population'], population_urban=self.country['population_urban'], birth=self.country['birth'], death=self.country['death'], itu=self.country['itu'], web=self.country['web'], gis=self.country['gis'], statistics=self.country['statistics'], flag=self.country['flag'], government=self.country['government'], boundary_box=self.country['boundary_box'], currency=self.country['currency'] ) new_country.save() self.assertEqual(new_country.iso_code, self.country['iso_code'], "New Countru ISO Code")
def get_add_new_country(current_user, user_country): if request.method == 'GET': countries = Country.query.all() return make_response( jsonify({"countries": countries_schema.dump(countries)})), 200 if request.method == 'POST': name = request.data.get('name', '') code = request.data.get('code', '') if name and code: new_country = Country(name, code) new_country.save() return make_response( jsonify({ "message": "Country successfully saved!", "country": country_schema.dump(new_country) })), 201 else: return make_response( jsonify({"message": "Add a country name and code"})), 400
def post(self): """ POST Method for Country. Login required :return: JSON response """ errors = [] try: self.validate_fields(Country.required_fields(), request.form) except ValueError: return self.response(400, 'Required fields: ' + ' '.join(Country.required_fields())) params = self.get_form_values(Country.get_columns(), request.form) validate = Country.query.filter_by(iso_code=params['iso_code']).first() if validate: errors.append("The iso_code already exists") if params['continental_code']: validate = Continent.query.filter_by(code=params['continental_code']).first() if validate is None: errors.append("The continental_code doesn't exists") if errors: return self.response(400, errors) new_country = Country( iso_code=params['iso_code'], iso_code_long=params['iso_code_long'], short_name=params['short_name'], formal_name=params['formal_name'], demonym=params['demonym'], country_code=params['country_code'], continental_code=params['continental_code'], coordinates=params['coordinates'], elevation=params['elevation'], elevation_low=params['elevation_low'], area=params['area'], land=params['land'], fertility=params['fertility'], death=params['death'], birth=params['birth'], population=params['population'], population_urban=params['population_urban'], itu=params['itu'], web=params['web'], gis=params['gis'], statistics=params['statistics'], flag=params['flag'], government=params['government'], boundary_box=params['boundary_box'], currency=params['currency'], ) new_country.save() return self.response(201)
def put(self, iso_code): """ PUT Method for Country. Login required :param iso_code: :return: JSON response """ errors = [] iso_code = str(iso_code).upper() country = Country.query.filter_by(iso_code=iso_code).first() if country is None: return self.response(404) params = self.get_form_values(Country.get_columns(), request.form) if params['continental_code']: validate = Continent.query.filter_by(code=params['continental_code']).first() if validate is None: errors.append("The continental_code doesn't exists") if errors: return self.response(400, errors) if params['iso_code_long']: country.iso_code_long = params['iso_code_long'] if params['short_name']: country.short_name = params['short_name'] if params['formal_name']: country.formal_name = params['formal_name'] if params['demonym']: country.demonym = params['demonym'] if params['country_code']: country.country_code = params['country_code'] if params['continental_code']: country.continental_code = params['continental_code'] if params['coordinates']: country.coordinates = params['coordinates'] if params['elevation']: country.elevation = params['elevation'] if params['elevation_low']: country.elevation_low = params['elevation_low'] if params['area']: country.area = params['area'] if params['land']: country.land = params['land'] if params['fertility']: country.fertility = params['fertility'] if params['population']: country.population = params['population'] if params['population_urban']: country.population_urban = params['population_urban'] if params['itu']: country.itu = params['itu'] if params['web']: country.web = params['web'] if params['gis']: country.gis = params['gis'] if params['statistics']: country.statistics = params['statistics'] if params['flag']: country.flag = params['flag'] if params['government']: country.government = params['government'] if params['boundary_box']: country.boundary_box = params['boundary_box'] if params['currency']: country.currency = params['currency'] country.save() return self.response(200)