Skip to content
Snippets Groups Projects
ServerTests.py 2.16 KiB
Newer Older
  • Learn to ignore specific revisions
  • zshan2's avatar
    zshan2 committed
    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, 200)
    
        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()