Skip to content
Snippets Groups Projects
ServerTests.py 2.16 KiB
Newer Older
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': []})
zshan2's avatar
zshan2 committed

    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)
zshan2's avatar
zshan2 committed

    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()