Changeset 17327
- Timestamp:
- 31 Jan 2023, 16:15:54 (22 months ago)
- Location:
- main/waeup.kofa/trunk
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
main/waeup.kofa/trunk/CHANGES.txt
r17313 r17327 5 5 ======================= 6 6 7 * Move call to interactive debugger from `grokcore.startup` to `waeup.kofa`. 8 Support for this was dropped long ago in `grokcore.startup`. This way we keep 9 the possibility to provide a `kofactl` script w/o loosing the possibility to 10 upgrade to newer `grokcore.startup` versions. 11 7 12 * Allow beds to be blocked so that no student can be allocated to such a bed space 8 13 (in contrast to reserved beds) … … 14 19 1.8.1 (2023-01-16) 15 20 ================== 16 17 21 18 22 * Upgrade `dolmen.beaker` dependency. Removes other outdated crypto … … 30 34 31 35 * Allow students to book accommodation also if they are in previous 32 sessions (not activated in base package). 33 34 * Add Javascript which automatically submits a form on select change 36 sessions (not activated in base package). 37 38 * Add Javascript which automatically submits a form on select change 35 39 (not used in base but in lpng custom package). 36 40 … … 66 70 * Enable import of student history. 67 71 68 * Don't complain but remove leading and trailing whitespaces 72 * Don't complain but remove leading and trailing whitespaces 69 73 while converting values during import. 70 74 … … 89 93 * Prefill login form after applicant registration. 90 94 91 * Show local roles on faculty, department, course and certificate pages 92 and provide 'Contact' button so that authenticated users can contact 95 * Show local roles on faculty, department, course and certificate pages 96 and provide 'Contact' button so that authenticated users can contact 93 97 officers via Kofa. 94 98 … … 257 261 * Make max file size customizable. 258 262 259 * Add `score_editing_disabled` switch at course level. 263 * Add `score_editing_disabled` switch at course level. 260 264 261 265 * Take `DELETION_MARKER` into consideration when updating passwords. … … 275 279 in container code. 276 280 277 * Add semester filter to Fix `CourseTicketExporter`. 281 * Add semester filter to Fix `CourseTicketExporter`. 278 282 279 283 * Add `FacultiesExportJobContainerSelectStudents` view to allow -
main/waeup.kofa/trunk/setup.py
r17299 r17327 132 132 [console_scripts] 133 133 kofa-debug = grokcore.startup:interactive_debug_prompt 134 kofactl = grokcore.startup:zdaemon_controller134 kofactl = waeup.kofa.startup:zdaemon_controller 135 135 analyze = waeup.kofa.maintenance:db_analyze 136 136 fsdiff = waeup.kofa.maintenance:db_diff -
main/waeup.kofa/trunk/src/waeup/kofa/startup.py
r12110 r17327 49 49 """ 50 50 import os 51 import sys 52 import zdaemon.zdctl 51 53 from ConfigParser import RawConfigParser 52 from grokcore.startup import application_factory, debug_application_factory 54 from grokcore.startup import ( 55 application_factory, debug_application_factory, 56 interactive_debug_prompt) 57 53 58 54 59 def _set_env_vars(global_conf): … … 62 67 os.environ[key] = val 63 68 return 69 64 70 65 71 def env_app_factory(global_conf, **local_conf): … … 94 100 return application_factory(global_conf, **local_conf) 95 101 102 96 103 def env_debug_app_factory(global_conf, **local_conf): 97 104 """A debugger application factory. … … 104 111 _set_env_vars(global_conf) 105 112 return debug_application_factory(global_conf, **local_conf) 113 114 115 class ControllerCommands(zdaemon.zdctl.ZDCmd): 116 117 def do_debug(self, rest): 118 zope_conf = os.path.join('parts', 'etc', 'zope.conf') 119 del sys.argv[0] 120 interactive_debug_prompt(zope_conf=zope_conf) 121 122 def help_debug(self): 123 print("debug -- Initialize the application, providing a debugger") 124 print(" object at an interactive Python prompt.") 125 126 127 def zdaemon_controller(zdaemon_conf=os.path.join('parts', 'etc', 128 'zdaemon.conf')): 129 args = ['-C', zdaemon_conf] + sys.argv[1:] 130 zdaemon.zdctl.main(args, options=None, cmdclass=ControllerCommands) -
main/waeup.kofa/trunk/src/waeup/kofa/tests/test_startup.py
r12110 r17327 1 1 # Tests for local startup functions. 2 import mock 2 3 import os 3 4 import shutil 5 import sys 4 6 import tempfile 5 7 import unittest 8 # from zdaemon.zdctl import 9 import zdaemon.zdctl 6 10 from zope.app.wsgi import WSGIPublisherApplication 7 from waeup.kofa.startup import env_app_factory, env_debug_app_factory 11 # from zdaemon.tests.testzdctl import run as run_zdctl 12 from waeup.kofa.startup import ( 13 env_app_factory, env_debug_app_factory, zdaemon_controller, 14 ) 15 try: 16 from StringIO import StringIO # py2 17 except ImportError: 18 from io import StringIO # py3 19 20 8 21 9 22 ZOPE_CONF_TEMPL = ''' … … 21 34 ''' 22 35 36 37 ZDAEMON_CONF_TEMPL = ''' 38 <runner> 39 program echo "zdaemon started" 40 </runner> 41 ''' 42 43 23 44 class StartUpTests(unittest.TestCase): 24 45 … … 29 50 self.zope_conf = os.path.join(self.workdir, 'zope.conf') 30 51 open(self.zope_conf, 'wb').write(ZOPE_CONF_TEMPL % self.site_zcml) 52 self.zdaemon_conf = os.path.join(self.workdir, 'zdaemon.conf') 53 open(self.zdaemon_conf, 'wb').write(ZDAEMON_CONF_TEMPL) 31 54 return 32 55 … … 75 98 self.assertEqual(os.environ.get('TEST_FOO', None), 'value1') 76 99 return 100 101 @mock.patch("sys.stdout", new_callable=StringIO) 102 def test_zdaemon_has_debug_help(self, mock_out): 103 # We provide a `debug` help text for `kofactl` 104 with mock.patch.object(sys, "argv", ["kofactl", "help", "debug"]): 105 with self.assertRaises(SystemExit): 106 zdaemon_controller(zdaemon_conf=self.zdaemon_conf) 107 self.assertTrue("providing a debugger" in mock_out.getvalue()) 108 109 @mock.patch("waeup.kofa.startup.interactive_debug_prompt") 110 def test_zdaemon_can_start_debug(self, mock_prompt): 111 # We can actually run the debugger... 112 with mock.patch.object(sys, "argv", ["kofactl", "debug"]): 113 with self.assertRaises(SystemExit): 114 zdaemon_controller(zdaemon_conf=self.zdaemon_conf) 115 self.assertTrue(mock_prompt.called) -
main/waeup.kofa/trunk/versions.cfg
r17307 r17327 84 84 zc.z3monitor = 0.8.0 85 85 zc.zodbrecipes = 0.6.2 86 zdaemon = 2.0.786 zdaemon = 4.4 87 87 ZODB3 = 3.10.5 88 88 zope.app.apidoc = 3.7.5 … … 160 160 161 161 # Packages already at newest version (supporting py2 and py3) 162 grokcore.startup = 3.0.1 162 163 Paste = 3.5.2 163 164 PasteScript = 3.3.0
Note: See TracChangeset for help on using the changeset viewer.