def test_project_calls(self): p = Project.Create(self.u) p.Update(urls=['http://www.x.com', 'http://www.y.com'], title="New Project", subhead="Details") p.put() # List response = self.get_json("/api/project", {}, headers=self.api_headers) prj = response.get('projects')[0] self.assertEqual(prj.get('title'), "New Project") # Update response = self.post_json("/api/project", { 'id': prj.get('id'), 'title': 'New Name', 'due': '2018-01-01' }, headers=self.api_headers) prj = response.get('project') self.assertEqual(prj.get('title'), 'New Name') self.assertEqual(prj.get('due'), '2018-01-01') # Delete response = self.post_json("/api/project/delete", {'id': prj.get('id')}, headers=self.api_headers) prj = self.u.get(Project, id=prj.get('id')) self.assertIsNone(prj) # Confirm deletion
def test_project_report(self): prj = Project.Create(self.u) prj.Update(title="New Project", subhead="Project subhead", due=datetime(2017, 4, 5)) prj.set_progress(3) prj.put() self._test_report( {'type': REPORT.PROJECT_REPORT}, [[ "Date Created", "Date Due", "Date Completed", "Date Archived", "Title", "Subhead", "Links", "Starred", "Archived", "Progress", 'Progress 10%', 'Progress 20%', 'Progress 30%', 'Progress 40%', 'Progress 50%', 'Progress 60%', 'Progress 70%', 'Progress 80%', 'Progress 90%', 'Progress 100%' ], [ tools.sdatetime(prj.dt_created, fmt="%Y-%m-%d %H:%M:%S %Z"), tools.sdatetime(prj.dt_due, fmt="%Y-%m-%d %H:%M:%S %Z"), tools.sdatetime(prj.dt_completed, fmt="%Y-%m-%d %H:%M:%S %Z"), tools.sdatetime(prj.dt_archived, fmt="%Y-%m-%d %H:%M:%S %Z"), "New Project", "Project subhead", "", "0", "0", "30%", "N/A", "N/A", tools.sdatetime(tools.dt_from_ts(prj.progress_ts[2]), fmt="%Y-%m-%d %H:%M:%S %Z"), "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A" ]])
def get(self, d): # Run after admin user logs in u = User.query().get() if u: today = datetime.today() g = Goal.CreateMonthly(u, date=today) g.Update(text=["Get it done"]) g2 = Goal.Create(u, str(today.year)) g2.Update(text=["Make progress"]) ndb.put_multi([g, g2]) h = Habit.Create(u) h.Update(name="Run") h.put() p = Project.Create(u) p.Update(title="Blog post", subhead="How Flow works") p.put() Task.Create(u, "Get this done").put() t = Task.Create(u, "Think hard", due=datetime.today()) t2 = Task.Create(u, "Think even harder", due=datetime.today()) message = "OK" else: message = "No user" self.json_out({'message': message})
def update(self, d): ''' Create or update ''' id = self.request.get_range('id') params = tools.gets(self, strings=['title', 'subhead', 'url1', 'url2'], booleans=['starred', 'archived'], integers=['progress'], dates=['due'], supportTextBooleans=True) if id: prj = self.user.get(Project, id=id) else: prj = Project.Create(self.user) if prj: was_complete = prj.is_completed() update_urls = False urls = [] if 'url1' in params: urls.append(params.get('url1')) update_urls = True if 'url2' in params: urls.append(params.get('url2')) update_urls = True if update_urls: params['urls'] = urls prj.Update(**params) prj.put() completed = prj.is_completed() and not was_complete if completed: self.message = "Project completed!" self.success = True self.set_response({'project': prj.json() if prj else None})
def setUp(self): self.set_application(tst_app) self.setup_testbed() self.init_datastore_stub() self.init_memcache_stub() self.init_taskqueue_stub() self.init_mail_stub() self.register_search_api_stub() u = User.Create(email="*****@*****.**") u.put() self.project = Project.Create(u) self.project.Update(title="Build App", subhead="Subhead", urls=["http://www.example.com"]) self.project.put()