import unittest import os import json import DataBase.mongoDB as db import requests import Server.SimpleServer class DataBaseTests(unittest.TestCase): def setUp(self): file_path = os.path.dirname(__file__) + r"\testData.json" with open(file_path) as file: self.test_data = json.load(file) self.test_data1 = self.test_data["test_data1"] def tearDown(self): data_base = db.get_db() record = data_base.test_books record.delete_many({}) def test_valid_get(self): db.insert_document(self.test_data1, 0) url = "http://127.0.0.1:5000/api/book?id=38746485" res = requests.get(url) self.assertEqual(res.status_code, 200) def test_search(self): db.insert_document(self.test_data1, 0) url1 = "http://127.0.0.1:5000/api/search?q=book.id%3A38746485" res1 = requests.get(url1) self.assertEqual(res1.status_code, 200) url2 = "http://127.0.0.1:5000/api/search?q=book.id%3A38746485%26book.rating%3E4.90" res2 = requests.get(url2) self.assertEqual(res2.json(), {}) def test_invalid_get_not_exist(self): db.insert_document(self.test_data1, 0) url = "http://127.0.0.1:5000/api/book?id=12345678" res = requests.get(url) self.assertEqual(res.status_code, 200) self.assertEqual(res.json(), {'books': []}) def test_invalid_get_wrong_collection_name(self): db.insert_document(self.test_data1, 0) url = "http://127.0.0.1:5000/api/bookssss?id=38746485" res = requests.get(url) self.assertEqual(res.status_code, 400) def test_valid_put(self): db.insert_document(self.test_data1, 0) url = "http://127.0.0.1:5000/api/book?id=38746485" update_info = {"rating_count": 1000000} res = requests.put(url, json=update_info) self.assertEqual(res.status_code, 200) def test_insert_put(self): url = "http://127.0.0.1:5000/api/book?id=38746485" update_info = {"rating_count": 1000000} res = requests.put(url, json=update_info) self.assertEqual(res.status_code, 200) if __name__ == '__main__': unittest.main()