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