def test_city_deletion(self): city_route = '/_admin/city' url = self.random() City(name = self.random(), url = url, hours = 5, minutes = 45).put() city_data = dict(action='delete') self.admin_app.post(city_route+'/'+url, city_data) self.assertFalse(City.get_by_url(url))
def update(self, city_url=None): current_city = City.get_by_url(city_url) current_city.name = self.read('name') current_city.url = self.read('url') current_city.hours_offset = int(self.read('hours')) current_city.minutes_offset = int(self.read('minutes')) current_city.put() self.redirect('/_admin/city', False)
def get(self, city_url, venue_url): redirect_url = None city = City.get_by_url(city_url) if city: venue = city.get_venue_by_url(venue_url) else: redirect_url = '/' if not venue: redirect_url = '/' + city_url if not redirect_url: performances = venue.get_performances().fetch(50) self.render('public/venue.html', dict(venue=venue, performances=performances, auth = utils.authdetails(venue.get_route()))) else: self.redirect(redirect_url,False)
def test_city_creation(self): city_route = '/_admin/city' self.admin_app.post(city_route, {'action':'create'}, status=403) # tells blank posts to bugger off name = self.random() url = self.random() city_data = dict(action='create', name=name, url=url, hours=5, minutes=43) self.admin_app.post(city_route, city_data) self.admin_app.post(city_route, city_data, status=403) # create the city only once city = City.get_by_url(url) self.assertTrue(city) self.assertEqual(name, city.name) self.assertEqual(url, city.url)
def get(self, url): city = City.get_by_url(url) if not city: company = Company.get_by_url(url) if not city and not company: self.redirect('/', False) return data_type = 'city' if city else 'company' data = city or company start_after = self.read('start_after') performances = data.get_performances(start_after = start_after).fetch(PAGE+1) start_after = performances[-2].time_sort if len(performances) == PAGE+1 else None render_data = dict(performances=performances[:PAGE], start_after = start_after, auth = utils.authdetails(data.get_route())) render_data[data_type] = data self.render('public/' + data_type + '.html', render_data)
def test_city_updating(self): city_route = '/_admin/city' self.admin_app.post(city_route, {'action':'update'}, status=403) # tells blank posts to bugger off url = self.random() City(name = self.random(), url = url, hours = 5, minutes = 45).put() new_name = self.random() new_hours = 6 new_minutes = 34 new_url = self.random() city_data = dict(action='update', name=new_name, url=new_url, hours=new_hours, minutes=new_minutes) self.admin_app.post(city_route+'/'+url, city_data) city = City.get_by_url(new_url) self.assertTrue(city) self.assertEqual(new_name, city.name) self.assertEqual(new_url, city.url) self.assertEqual(new_hours, city.hours_offset) self.assertEqual(new_minutes, city.minutes_offset)
def put(self): if City.get_by_url(self.url): raise ValueError('This url is being used by a city') return super(Company, self).put()
def get(self, city_url=None): current_city = City.get_by_url(city_url) self.render("admin/city.html", dict(cities=City.all(), current_city=current_city))
def delete(self, city_url=None): city = City.get_by_url(city_url) if city: city.delete() self.get()
def check_city(self): city = City.get_by_url(self.read('city')) if not city: raise Exception("That city doesn't exist.") return city