def post(self, item_id): """在一个条目下创建一条记录""" remark = request.form.get('remark', '') item = get_or_raise(ItemM, id=item_id) start = datetime.now() record = RecordM(start=start, remark=remark) record.item = item db.session.add(record) db.session.commit() return {'status': 201, 'message': 'Created', 'data': record}, 201
def test_calculation_of_item(self): """ api: /category/<int:category_id>/calculation methods: get: 获取一个分类下的每个条目的记录的时间总和(秒) """ item = Item.query.first() record = Record(start=datetime(2019, 1, 10, 6, 0, 0), finish=datetime(2019, 1, 10, 7, 0, 0)) record.item = item db.session.add(record) db.session.commit() res = self.client.get(BASE_URL + '/category/1/calculation').get_json() self.assertEqual(200, res['status']) self.assertEqual(3600, res['data'][0]['value'])
def fake_records(count=50): items = Item.query.all() times = [fake.date_time_this_year() for _ in range(count * 2)] times.sort(reverse=True) while True: try: for _ in range(count): record = Record(start=times.pop(), finish=times.pop(), remark=fake.sentence()) record.item = random.choice(items) db.session.add(record) db.session.commit() break except IntegrityError: db.session.rollback() continue