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

1from flask import session 

2import pytest 

3import os 

4import datetime 

5import sys 

6 

7# flake8: noqa: F811 

8 

9sys.path.append( 

10 os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) 

11) 

12 

13from core import shared 

14from core.configuration_settings import Config 

15from core.database_mongo_manager import DatabaseMongoManager 

16 

17os.environ["IS_TEST"] = "True" 

18 

19 

20@pytest.fixture() 

21def database(): 

22 """Fixture to create a test database.""" 

23 

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

31 

32 

33@pytest.fixture 

34def app(): 

35 from app import app 

36 

37 app.config["TESTING"] = True 

38 return app 

39 

40 

41def test_config_initialization(database): 

42 current_config = database.get_all("config") 

43 database.delete_all("config") 

44 config = Config(database) 

45 

46 assert config.get_max_num_of_skills() == 10 

47 assert config.get_min_num_ranking_student_to_opportunities() == 5 

48 

49 # Test updating the config values 

50 config.set_num_of_skills(15) 

51 config.set_min_num_ranking_student_to_opportunities(8) 

52 

53 assert config.get_max_num_of_skills() == 15 

54 assert config.get_min_num_ranking_student_to_opportunities() == 8 

55 

56 # Reset the values to default 

57 config.set_num_of_skills(10) 

58 config.set_min_num_ranking_student_to_opportunities(5) 

59 

60 # Reset the database 

61 database.delete_all("config") 

62 

63 for entry in current_config: 

64 database.insert("config", entry)