def test_get(self): image = DashboardImage.create(1, 2, 3, 7, 'blah') self.assertEqual(memcache.get('dashboard-image:1:2:3:7'), 'blah') memcache.set('dashboard-image:1:2:3:7', 'new value') # Check twice to make sure the first call doesn't clear memcache self.assertEqual(DashboardImage.get_image(1, 2, 3, 7), 'new value') self.assertEqual(DashboardImage.get_image(1, 2, 3, 7), 'new value') memcache.delete('dashboard-image:1:2:3:7') self.assertEqual(memcache.get('dashboard-image:1:2:3:7'), None) self.assertEqual(DashboardImage.get_image(1, 2, 3, 7), 'blah') self.assertEqual(memcache.get('dashboard-image:1:2:3:7'), 'blah')
def get(self, test_id, branch_id, platform_id, display_days): try: branch_id = int(branch_id) platform_id = int(platform_id) test_id = int(test_id) display_days = int(display_days) except ValueError: self.response.headers['Content-Type'] = 'text/plain; charset=utf-8' self.response.out.write('Failed') self.response.headers['Content-Type'] = 'image/png' image = DashboardImage.get_by_key_name(DashboardImage.key_name(branch_id, platform_id, test_id, display_days)) if image: self.response.out.write(image.image)
def post(self): self.response.headers['Content-Type'] = 'text/plain; charset=utf-8' test_id, branch_id, platform_id = _get_test_branch_platform_ids(self) branch = model_from_numeric_id(branch_id, Branch) platform = model_from_numeric_id(platform_id, Platform) test = model_from_numeric_id(test_id, Test) display_days = int(self.request.get('displayDays')) assert branch assert platform assert test params = Runs(branch, platform, test.name).chart_params(display_days) dashboard_chart_file = urllib.urlopen('http://chart.googleapis.com/chart', urllib.urlencode(params)) DashboardImage.create(branch.id, platform.id, test.id, display_days, dashboard_chart_file.read())
def schedule_runs_update(test_id, branch_id, platform_id, regenerate_runs=True): if regenerate_runs: taskqueue.add(url='/api/test/runs/update', params={'id': test_id, 'branchid': branch_id, 'platformid': platform_id}) for display_days in [7, 30, 90, 365]: if DashboardImage.needs_update(branch_id, platform_id, test_id, display_days): taskqueue.add(url='/api/test/runs/chart', params={'id': test_id, 'branchid': branch_id, 'platformid': platform_id, 'displayDays': display_days})
def post(self): return self.response.headers['Content-Type'] = 'text/plain; charset=utf-8' test_id, branch_id, platform_id = _get_test_branch_platform_ids(self) branch = model_from_numeric_id(branch_id, Branch) platform = model_from_numeric_id(platform_id, Platform) test = model_from_numeric_id(test_id, Test) display_days = int(self.request.get('displayDays')) assert branch assert platform assert test params = Runs.get_by_objects(branch, platform, test).chart_params(display_days) if not params: return dashboard_chart_file = urllib.urlopen('http://chart.googleapis.com/chart', urllib.urlencode(params)) DashboardImage.create(branch.id, platform.id, test.id, display_days, dashboard_chart_file.read())
def post(self): self.response.headers["Content-Type"] = "text/plain; charset=utf-8" test_id, branch_id, platform_id = _get_test_branch_platform_ids(self) branch = model_from_numeric_id(branch_id, Branch) platform = model_from_numeric_id(platform_id, Platform) test = model_from_numeric_id(test_id, Test) display_days = int(self.request.get("displayDays")) assert branch assert platform assert test params = Runs.update_or_insert(branch, platform, test).chart_params(display_days) if not params: return dashboard_chart_file = urllib.urlopen("http://chart.googleapis.com/chart", urllib.urlencode(params)) DashboardImage.create(branch.id, platform.id, test.id, display_days, dashboard_chart_file.read())
def schedule_runs_update(test_id, branch_id, platform_id, regenerate_runs=True): if regenerate_runs: taskqueue.add( url="/api/test/runs/update", params={"id": test_id, "branchid": branch_id, "platformid": platform_id} ) for display_days in [7]: if DashboardImage.needs_update(branch_id, platform_id, test_id, display_days): taskqueue.add( url="/api/test/runs/chart", params={"id": test_id, "branchid": branch_id, "platformid": platform_id, "displayDays": display_days}, )
def get(self, test_id, branch_id, platform_id, display_days): try: branch_id = int(branch_id) platform_id = int(platform_id) test_id = int(test_id) display_days = int(display_days) except ValueError: self.response.headers['Content-Type'] = 'text/plain; charset=utf-8' self.response.out.write('Failed') self.response.headers['Content-Type'] = 'image/png' self.response.out.write(DashboardImage.get_image(branch_id, platform_id, test_id, display_days))
def get(self, test_id, branch_id, platform_id, display_days): try: branch_id = int(branch_id) platform_id = int(platform_id) test_id = int(test_id) display_days = int(display_days) except ValueError: self.response.headers["Content-Type"] = "text/plain; charset=utf-8" self.response.out.write("Failed") self.response.headers["Content-Type"] = "image/png" self.response.out.write(DashboardImage.get_image(branch_id, platform_id, test_id, display_days))
def schedule_runs_update(test_id, branch_id, platform_id, regenerate_runs=True): if regenerate_runs: taskqueue.add(url='/api/test/runs/update', params={ 'id': test_id, 'branchid': branch_id, 'platformid': platform_id }) for display_days in [7, 30, 90, 365]: if DashboardImage.needs_update(branch_id, platform_id, test_id, display_days): taskqueue.add(url='/api/test/runs/chart', params={ 'id': test_id, 'branchid': branch_id, 'platformid': platform_id, 'displayDays': display_days })
def test_needs_update(self): self.assertTrue(DashboardImage.needs_update(1, 2, 3, 7)) self.assertTrue(DashboardImage.needs_update(1, 2, 3, 30)) self.assertTrue(DashboardImage.needs_update(1, 2, 3, 60)) self.assertTrue(DashboardImage.needs_update(1, 2, 3, 365)) image = DashboardImage(key_name=DashboardImage.key_name(1, 2, 3, 7), image='blah') image.put() self.assertOnlyInstance(image) self.assertTrue(DashboardImage.needs_update(1, 2, 3, 7)) DashboardImage(key_name=DashboardImage.key_name(1, 2, 3, 30), image='blah').put() self.assertFalse(DashboardImage.needs_update(1, 2, 3, 30, datetime.now() + timedelta(0, 10))) DashboardImage(key_name=DashboardImage.key_name(1, 2, 4, 30), image='blah').put() self.assertTrue(DashboardImage.needs_update(1, 2, 4, 30, datetime.now() + timedelta(1))) DashboardImage(key_name=DashboardImage.key_name(1, 2, 3, 90), image='blah').put() self.assertFalse(DashboardImage.needs_update(1, 2, 3, 90, datetime.now() + timedelta(0, 20))) DashboardImage(key_name=DashboardImage.key_name(1, 2, 4, 90), image='blah').put() self.assertTrue(DashboardImage.needs_update(1, 2, 4, 90, datetime.now() + timedelta(1))) DashboardImage(key_name=DashboardImage.key_name(1, 2, 3, 365), image='blah').put() self.assertFalse(DashboardImage.needs_update(1, 2, 3, 365, datetime.now() + timedelta(1))) DashboardImage(key_name=DashboardImage.key_name(1, 2, 4, 365), image='blah').put() self.assertTrue(DashboardImage.needs_update(1, 2, 4, 365, datetime.now() + timedelta(10)))
def test_create(self): self.assertEqual(memcache.get('dashboard-image:1:2:3:7'), None) self.assertThereIsNoInstanceOf(DashboardImage) image = DashboardImage.create(1, 2, 3, 7, 'blah') self.assertOnlyInstance(image) self.assertEqual(memcache.get('dashboard-image:1:2:3:7'), 'blah')