Skip to content
Snippets Groups Projects
DataBaseTests.py 1.69 KiB
Newer Older
  • Learn to ignore specific revisions
  • zshan2's avatar
    zshan2 committed
    import unittest
    import os
    import DataBase.mongoDB as db
    import json
    from pymongo import MongoClient
    from dotenv import load_dotenv
    
    
    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_upload(self):
            data_base = db.get_db()
            record = data_base.test_books
            db.insert_document(self.test_data1, 0)
            self.assertEqual(record.count_documents({}), 1)
    
        def test_download(self):
            db.insert_document(self.test_data1, 0)
            json_file = json.loads(db.get_documents_json(0, {"title": "Becoming"}))
            no_id_test_data1 = self.test_data1
            no_id_test_data1.pop("_id")
            self.assertEqual(json_file["books"][0], no_id_test_data1)
    
        def test_update(self):
            data_base = db.get_db()
            record = data_base.test_books
            db.insert_document(self.test_data1, 0)
            db.update_dicts(0, {"title": "Becoming"}, {"rating_count": 1000000})
            self.assertEqual(record.count_documents({"rating_count": self.test_data1["rating_count"]}), 0)
            self.assertEqual(record.count_documents({"rating_count": 1000000}), 1)
    
        def test_delete(self):
            data_base = db.get_db()
            record = data_base.test_books
            db.insert_document(self.test_data1, 0)
            db.clean(0, {})
            self.assertEqual(record.count_documents({}), 0)
    
    
    if __name__ == '__main__':
        unittest.main()
        # db.clean(0, {})