def test_filter_date_no_receipts(self): date_from = "22-07-1900" start = datetime.strptime(date_from, '%d-%m-%Y').date() date_to = "22-09-1900" end = datetime.strptime(date_from, '%d-%m-%Y').date() date_text = "22-09-2018" date = datetime.strptime(date_text, '%d-%m-%Y').date() add_receipt(15, date, "GitHub", "00.000.000/0000-00", 20.0, 50.0, "Geladeira", "Isso é uma descrição bem grande", None) add_receipt(16, date, "Gitlab", "00.000.000/0000-00", 15.0, 20.0, "Notebook", "Isso é outro description", None) with self.client: response = self.client.post( '/15/select_date', data=json.dumps({ "period": { "date_from": start.isoformat(), "date_to": end.isoformat() } }), content_type='application/json', ) data = json.loads(response.data.decode()) self.assertEqual(response.status_code, 400) self.assertIn('no receipts', data['empty'])
def test_get_all_receipts(self): date_text = "22-09-2018" date = datetime.strptime(date_text, '%d-%m-%Y').date() add_receipt(15, date, "GitHub", "00.000.000/0000-00", 20.0, 50.0, "Geladeira", "Isso é uma descrição bem grande", None) add_receipt(16, date, "Gitlab", "00.000.000/0000-00", 15.0, 20.0, "Notebook", "Isso é outro description", None) with self.client: response = self.client.get('/15/receipts') data = json.loads(response.data.decode()) self.assertEqual(response.status_code, 200) self.assertEqual(len(data['data']['receipts']), 1) self.assertIn('success', data['status']) self.assertEqual(15, data['data']['receipts'][0]['company_id']) self.assertEqual(date.isoformat(), data['data']['receipts'][0]['emission_date']) self.assertIn('GitHub', data['data']['receipts'][0]['emission_place']) self.assertIn('00.000.000/0000-00', data['data']['receipts'][0]['cnpj']) self.assertEqual(20.0, data['data']['receipts'][0]['tax_value']) self.assertEqual(50.0, data['data']['receipts'][0]['total_price']) self.assertIn('Geladeira', data['data']['receipts'][0]['title']) self.assertIn('Isso é uma descrição bem grande', data['data']['receipts'][0]['description']) self.assertEqual(None, data['data']['receipts'][0]['tag_id'])
def test_filter_date_missing_date_to(self): date_from = "22-07-2018" start = datetime.strptime(date_from, '%d-%m-%Y').date() date_text = "22-09-2018" date = datetime.strptime(date_text, '%d-%m-%Y').date() add_receipt(15, date, "GitHub", "00.000.000/0000-00", 20.0, 50.0, "Geladeira", "Isso é uma descrição bem grande", None) add_receipt(15, date, "Gitlab", "00.000.000/0000-00", 15.0, 20.0, "Notebook", "Isso é outro description", None) with self.client: response = self.client.post( '/15/select_date', data=json.dumps({"period": { "date_from": start.isoformat() }}), content_type='application/json', ) data = json.loads(response.data.decode()) self.assertEqual(response.status_code, 200) self.assertEqual(15, data['receipts'][0]['company_id']) self.assertEqual(date.isoformat(), data['receipts'][0]['emission_date']) self.assertIn('GitHub', data['receipts'][0]['emission_place']) self.assertIn('00.000.000/0000-00', data['receipts'][0]['cnpj']) self.assertEqual(20.0, data['receipts'][0]['tax_value']) self.assertEqual(50.0, data['receipts'][0]['total_price']) self.assertIn('Geladeira', data['receipts'][0]['title']) self.assertIn('Isso é uma descrição bem grande', data['receipts'][0]['description']) self.assertEqual(None, data['receipts'][0]['tag_id']) self.assertEqual(15, data['receipts'][1]['company_id']) self.assertEqual(date.isoformat(), data['receipts'][1]['emission_date']) self.assertIn('Gitlab', data['receipts'][1]['emission_place']) self.assertIn('00.000.000/0000-00', data['receipts'][1]['cnpj']) self.assertEqual(15.0, data['receipts'][1]['tax_value']) self.assertEqual(20.0, data['receipts'][1]['total_price']) self.assertIn('Notebook', data['receipts'][1]['title']) self.assertIn('Isso é outro description', data['receipts'][1]['description']) self.assertEqual(None, data['receipts'][1]['tag_id'])
def test_update_receipt(self): date_text = "22-09-2018" date = datetime.strptime(date_text, '%d-%m-%Y').date() receipt = add_receipt(15, date, "GitHub", "00.000.000/0000-00", 20.0, 50.0, "Geladeira", "Isso é uma descrição bem grande", None) with self.client: response = self.client.put( f'/15/update_receipt/{receipt.id}', data=json.dumps({ 'emission_date': date.isoformat(), 'emission_place': 'lalala', 'cnpj': '00.000.000/0000-00', 'tax_value': '123.12', 'total_price': '456.45', 'title': 'oi', 'description': 'Geladeira Electrolux em 12x' }), content_type='application/json', ) data = json.loads(response.data.decode()) self.assertEqual(response.status_code, 201) self.assertIn('Receipt Updated', data['data']['message']) self.assertIn('success', data['status'])
def test_remove_receipt_not_found(self): date_text = "22-09-2018" date = datetime.strptime(date_text, '%d-%m-%Y').date() receipt = add_receipt(16, date, "GitHub", "00.000.000/0000-00", 20.0, 50.0, 'Geladeira', 'Geladeira Electrolux em 12x', None) with self.client: response = self.client.delete(f'/15/receipt/{receipt.id}') data = json.loads(response.data.decode()) self.assertEqual(response.status_code, 404) self.assertIn('fail', data['status']) self.assertIn('Receipt not found', data['message'])
def test_detach_tag(self): date_text = "22-09-2018" date = datetime.strptime(date_text, '%d-%m-%Y').date() receipt = add_receipt(15, date, "GitHub", "00.000.000/0000-00", 20.0, 50.0, "Geladeira", "Isso é uma descrição bem grande", None) with self.client: response = self.client.patch(f'/15/update_tag/{receipt.id}', data=json.dumps({'tag_id': None}), content_type='application/json') data = json.loads(response.data.decode()) self.assertEqual(response.status_code, 200) self.assertIn('Tag detached from a receipt!', data['data']['message']) self.assertIn('success', data['status'])
def test_update_receipt_wrong_json(self): date_text = "22-09-2018" date = datetime.strptime(date_text, '%d-%m-%Y').date() receipt = add_receipt(15, date, "GitHub", "00.000.000/0000-00", 20.0, 50.0, "Geladeira", "Isso é uma descrição bem grande", None) with self.client: response = self.client.put( f'/15/update_receipt/{receipt.id}', data=json.dumps({}), content_type='application/json', ) data = json.loads(response.data.decode()) self.assertEqual(response.status_code, 400) self.assertIn('Wrong JSON', data['message']) self.assertIn('fail', data['status'])
def test_update_tag_not_found(self): date_text = "22-09-2018" date = datetime.strptime(date_text, '%d-%m-%Y').date() receipt = add_receipt(16, date, "GitHub", "00.000.000/0000-00", 20.0, 50.0, "Geladeira", "Isso é uma descrição bem grande", None) add_tag('Alimentação', 15, '#844155') with self.client: response = self.client.patch(f'/15/update_tag/{receipt.id}', data=json.dumps({'tag_id': 1}), content_type='application/json') data = json.loads(response.data.decode()) self.assertEqual(response.status_code, 404) self.assertIn('Receipt not found', data['message']) self.assertIn('fail', data['status'])
def test_get_single_receipt(self): date_text = "22-09-2018" date = datetime.strptime(date_text, '%d-%m-%Y').date() receipt = add_receipt(15, date, "GitHub", "00.000.000/0000-00", 20.0, 50.0, 'Geladeira', 'Geladeira Electrolux em 12x', None) with self.client: response = self.client.get(f'/15/receipt/{receipt.id}') data = json.loads(response.data.decode()) self.assertEqual(response.status_code, 200) self.assertIn('success', data['status']) self.assertEqual(15, data['data']['company_id']) self.assertEqual(date.isoformat(), data['data']['emission_date']) self.assertIn('GitHub', data['data']['emission_place']) self.assertIn('00.000.000/0000-00', data['data']['cnpj']) self.assertEqual(20.0, data['data']['tax_value']) self.assertEqual(50.0, data['data']['total_price']) self.assertIn('Geladeira', data['data']['title']) self.assertIn('Geladeira Electrolux em 12x', data['data']['description']) self.assertEqual(None, data['data']['tag_id'])