Coverage for tests/core_tests/test_config.py: 89%
35 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-05-05 14:02 +0000
« prev ^ index » next coverage.py v7.8.0, created at 2025-05-05 14:02 +0000
1from flask import session
2import pytest
3import os
4import datetime
5import sys
7# flake8: noqa: F811
9sys.path.append(
10 os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
11)
13from core import shared
14from core.configuration_settings import Config
15from core.database_mongo_manager import DatabaseMongoManager
17os.environ["IS_TEST"] = "True"
20@pytest.fixture()
21def database():
22 """Fixture to create a test database."""
24 DATABASE = DatabaseMongoManager(
25 shared.getenv("MONGO_URI"),
26 shared.getenv("MONGO_DB_TEST", "cs3528_testing"),
27 )
28 yield DATABASE
29 # Cleanup code after the test
30 DATABASE.connection.close()
33@pytest.fixture
34def app():
35 from app import app
37 app.config["TESTING"] = True
38 return app
41def test_config_initialization(database):
42 current_config = database.get_all("config")
43 database.delete_all("config")
44 config = Config(database)
46 assert config.get_max_num_of_skills() == 10
47 assert config.get_min_num_ranking_student_to_opportunities() == 5
49 # Test updating the config values
50 config.set_num_of_skills(15)
51 config.set_min_num_ranking_student_to_opportunities(8)
53 assert config.get_max_num_of_skills() == 15
54 assert config.get_min_num_ranking_student_to_opportunities() == 8
56 # Reset the values to default
57 config.set_num_of_skills(10)
58 config.set_min_num_ranking_student_to_opportunities(5)
60 # Reset the database
61 database.delete_all("config")
63 for entry in current_config:
64 database.insert("config", entry)