def test_show_creation_with_duplicate_url(self): url = self.random() hamlet = Show(company=self.evam, name="Hamlet spoof", url=url) hamlet.put() same_url_try = Show(company=self.evam, name="Hamlet other url try", url=url) self.assertRaises(ValueError, same_url_try.put)
def test_cascading_deletes(self): company = Company(name=self.random(), url = self.random()) company.put() show_url = self.random() show = Show(name= self.random(), url = show_url, company = company) show.put() self.assertTrue(Show.get_by_url(show_url)) company.delete() self.assertFalse(Show.get_by_url(show_url))
class ExtendedTestCase(unittest.TestCase): public_app = TestApp(public_main.createApp()) admin_app = TestApp(admin_main.createApp()) _login_stubs = StubOutForTesting() stubs = StubOutForTesting() def random(self): import hashlib, time return hashlib.md5((time.clock()*random.random()).__str__()).hexdigest() def setUp(self): self.make_test_data() self.login() self.mox = Mox() def tearDown(self): self.logout() self.stubs.UnsetAll() for model in [City, Company, Performance, Show, Venue]: for datum in model.all(): datum.delete() def login(self, user="******", admin=True): self._login_stubs.Set(users, 'get_current_user', lambda user = user : users.User(user)) self._login_stubs.Set(users, 'is_current_user_admin', lambda admin = admin : admin) def logout(self): self._login_stubs.UnsetAll() def make_test_data(self): now = datetime.datetime.now() self.now = datetime.datetime(year = now.date().year, month = now.date().month, day = now.date().day, hour = now.time().hour, minute = now.time().minute) self.one_day_later = self.now + datetime.timedelta(days=1) self.two_days_later = self.now + datetime.timedelta(days=2) self.three_days_later = self.now + datetime.timedelta(days=3) self.evam = Company(name='Evam Theatre Company', url='evam') self.evam.put() self.hamlet = Show(name='Hamlet', url='hamlet', company=self.evam) self.hamlet.put() self.chennai = City(name='Chennai', url='chennai') self.chennai.put() self.bangalore = City(name='Bangalore', url='bangalore') self.bangalore.put() self.lady_andal = Venue(name='Lady Andal', url='lady_andal', city=self.chennai) self.lady_andal.put() def make_performance(self, show, venue, dt): perf = Performance(show=show, venue=venue, utc_date_time=dt) perf.put() return perf
def post(self): show = Show() # show.key=ndb.Key('Show', int(request.form['id'])) show.event_id = ndb.Key('Event', int(request.form['event_id'])) show.client_id = ndb.Key('Client', int(request.form['client_id'])) show.screen_id = ndb.Key('Screen_Layout', int(request.form['screen_id'])) show.name = request.form['name'] show.datetime = datetime.datetime.now() screen = ndb.Key('Screen_Layout', int(request.form['screen_id'])) seats = screen.get().seats print type(seats) updated_seats = {} for each in seats: updated_seats[str(each['row'])+'-'+str(each['column'])]= {'status':4} show.seats = updated_seats res = show.put() # The below paragraph should be deleted later offset_id = 21 prices = [] print show.screen_id categories = Category.query(Category.screen_id == show.screen_id).fetch() for category in categories: price1 = Price(id=show.key.id() + offset_id, show_id=show.key, category_id=category.key, amount=500) offset_id += 1 prices.append(price1) print "###" print prices for price in prices: price.put() # The above paragraph should be deleted later return jsonify({'id': res.id(), 'message': "Success"})
def post(self): # Got client ID from environ user_id = request.environ['USER_ID'] client_id = user_id.get().detail_id show = Show() show.event_id = ndb.Key('Event', int(request.json['event_id'])) show.client_id = client_id # Fetched from the environ values. show.screen_id = ndb.Key('Screen_Layout', int(request.json['screen_id'])) show.datetime = datetime.strptime(request.json['datetime'], "%d-%m-%Y %H:%M") screen = ndb.Key('Screen_Layout', int(request.json['screen_id'])) seats = screen.get().seats updated_seats = {} for each in seats: updated_seats[str(each['row']) + '-' + str(each['column'])] = { 'status': 4 } show.seats = updated_seats categories_price = request.json['category-price'] res = show.put() # Creating a price for each request try: for each in categories_price: price = Price(show_id=res, category_id=ndb.Key('Category', int(each['category'])), amount=int(each['price'])) print '########' print type(price.category_id.id()) price.put() except: return jsonify({"code": 500, "message": "server error"}) return jsonify({"code": 200, "id": res.id(), "message": "Success"})
def test_get_show_by_url(self): url = self.random() hamlet = Show(company=self.evam, name=self.random(), url=url) hamlet.put() self.assertEqual(hamlet.name, self.evam.get_show_by_url(url).name)