修复评价统计、留言校验和聊天操作反馈
This commit is contained in:
@@ -378,6 +378,42 @@ class ApiTests(unittest.TestCase):
|
||||
self.client.delete('/api/clear_all')
|
||||
self.assertEqual(self.client.get('/api/get_history').json, [])
|
||||
|
||||
def test_browser_votes_and_legacy_rows_are_both_counted_in_admin_stats(self):
|
||||
for vote in ('up', 'down', 1, -1):
|
||||
self.assertEqual(self.client.post('/api/feedback', json={'vote':vote,'question':'q','answer':'a'}).status_code,200)
|
||||
with self.app.app_context():
|
||||
connection=db.connect()
|
||||
connection.executemany('INSERT INTO feedback(vote) VALUES(?)', [('up',),('down',)])
|
||||
connection.commit(); connection.close()
|
||||
stats=self.client.get('/api/admin/stats').json
|
||||
self.assertEqual((stats['good'],stats['bad']),(3,3))
|
||||
|
||||
def test_invalid_customer_feedback_and_tickets_return_json_errors_without_writes(self):
|
||||
for data in (None, [], [1], {}, {'vote':True}, {'vote':0}, {'vote':'unknown'},
|
||||
{'vote':'up','answer':{}}, {'vote':'down','question':[]}):
|
||||
with self.subTest(feedback=data):
|
||||
response=self.client.post('/api/feedback',json=data)
|
||||
self.assertEqual(response.status_code,400)
|
||||
self.assertFalse(response.json['ok'])
|
||||
for data in (None, [], [1], {}, {'content':' '}, {'content':{}}, {'content':'x'*2001},
|
||||
{'content':'help','phone':[]}, {'content':'help','phone':'1'*33}):
|
||||
with self.subTest(ticket=data):
|
||||
response=self.client.post('/api/ticket',json=data)
|
||||
self.assertEqual(response.status_code,400)
|
||||
self.assertFalse(response.json['ok'])
|
||||
for path in ('/api/feedback','/api/ticket'):
|
||||
response=self.client.post(path,data='{bad',content_type='application/json')
|
||||
self.assertEqual(response.status_code,400)
|
||||
self.assertFalse(response.json['ok'])
|
||||
with self.app.app_context():
|
||||
connection=db.connect()
|
||||
for table in ('feedback','tickets'):
|
||||
self.assertEqual(connection.execute('SELECT COUNT(*) FROM '+table).fetchone()[0],0)
|
||||
connection.close()
|
||||
self.assertEqual(self.client.post('/api/ticket',json={'content':' 请跟进报价 ','phone':' +86 123 '}).status_code,200)
|
||||
ticket=self.client.get('/api/tickets').json[0]
|
||||
self.assertEqual((ticket['content'],ticket['phone']),('请跟进报价','+86 123'))
|
||||
|
||||
def test_business_routes_with_initialized_tables_and_legacy_auth(self):
|
||||
with self.app.app_context():
|
||||
connection = db.connect()
|
||||
|
||||
Reference in New Issue
Block a user