Skip to content

Commit

Permalink
Add test for togglemodeapp
Browse files Browse the repository at this point in the history
  • Loading branch information
tmetzl committed Feb 27, 2024
1 parent c706890 commit a5902bc
Showing 1 changed file with 67 additions and 0 deletions.
67 changes: 67 additions & 0 deletions e2xgrader/tests/apps/test_togglemodeapp.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
import unittest
from unittest.mock import patch

from e2xgrader.apps.togglemodeapp import ToggleModeApp


class TestToggleModeApp(unittest.TestCase):

def setUp(self):
self.app = ToggleModeApp()
self.app.initialize([])

def test_fail_both_sys_prefix_and_user(self):
self.app.sys_prefix = True
self.app.user = True
with self.assertRaises(SystemExit):
self.app.start()

def test_activate_mode(self):
with patch(
"e2xgrader.apps.togglemodeapp.E2xExtensionManager"
) as mock_extension_manager:
with patch(
"e2xgrader.apps.togglemodeapp.ToggleModeApp.write_mode_config_file"
) as mock_write_mode_config_file:

self.app.mode = "teacher"
self.app.activate_mode()
mock_extension_manager.return_value.activate_teacher.assert_called_once_with(
sys_prefix=False, user=False
)

mock_write_mode_config_file.assert_called_once()

self.app.mode = "student"
self.app.activate_mode()
mock_extension_manager.return_value.activate_student.assert_called_once_with(
sys_prefix=False, user=False
)

self.assertEqual(mock_write_mode_config_file.call_count, 2)

self.app.mode = "student_exam"
self.app.activate_mode()
mock_extension_manager.return_value.activate_student_exam.assert_called_once_with(
sys_prefix=False, user=False
)

self.assertEqual(mock_write_mode_config_file.call_count, 3)

self.app.mode = "None"
self.app.activate_mode()
mock_extension_manager.return_value.deactivate.assert_called_once_with(
sys_prefix=False, user=False
)

self.assertEqual(mock_write_mode_config_file.call_count, 4)

def test_flags(self):
with patch("e2xgrader.apps.togglemodeapp.E2xExtensionManager"):
with patch(
"e2xgrader.apps.togglemodeapp.ToggleModeApp.write_mode_config_file"
):
self.app.initialize(["--sys-prefix"])
self.assertTrue(self.app.sys_prefix)
self.app.initialize(["--user"])
self.assertTrue(self.app.user)

0 comments on commit a5902bc

Please sign in to comment.