3
I Use This!
Inactive

Commits : Listings

Analyzed 1 day ago. based on code collected 1 day ago.
Aug 30, 2024 — Aug 30, 2025
Commit Message Contributor Files Modified Lines Added Lines Removed Code Location Date
* qm/.cvsignore: Add *.pyo. * qm/test.cvsignore: Likewise. * qm/test/classes/.cvsignore: Likewise. * qm/test/web/.cvsignore: Likewise. * qm/track/.cvsignore: Likewise. * qm/track/triggers/.cvsignore: Likewise. * qm/track/web/.cvsignore: Likewise. More... almost 24 years ago
* doc/manual/manual.xml (track-email): New entity. * doc/manual/track-manual.xml: Reference it (but commented out). * doc/manual/track-email.xml: New file. More... almost 24 years ago
* Makefile.in (PYTHONDOCIDRS): Define. (install): Optimize the generated bytecode. * qm.spec: Update to remove references to Software Carpentry. * standard.mk.in (doc): Do not depend on doc-python. * qm/qm.sh: Invoke Python with -O. * qm/test/base.py: Remove unnecessary whitespace. * qm/test/classes/command.py (STDIN_FILENO): Remove. (STDOUT_FILENO): Likewise. (STDERR_FILENO): Likewise. (ExecTest.Run): Adjust. * qm/test/web/dir.py: Remove. * qm/test/web/run.py: Likewise. * qm/test/web/show.py: Likewise. * qm/test/web/suite.py: Likewise. * qm/test/web/web.py (AddPrerequisitePage): New class. (AddResourcePage): Likewise. (DirPage): Likewise. (NewItemPage): Likewise. (NewSuitePage): Likewise. (ShowItemPage): Likewise. (ShowSuitePage): Likewise. (TestResultsPage): Likewise. (QMTestServer.__init__): Update page registrations. (QMTestServer.HandleCreateSuite): New method. (QMTestServer.HandleDeleteItem): Likewise. (QMTestServer.HandleDeleteSuite): Likewise. (QMTestServer.HandleDir): Likewise. (QMTestServer.HandleEditSuite): Likewise. (QMTestServer.HandleNewResource): Likewise. (QMTestServer.HandleNewTest): Likewise. (QMTestServer.HandleNewSuite): Likewise. (QMTestServer.HandleShowItem): Likewise. (QMTestServer.HandleShowSuite): Likewise. (QMTestServer.HandleSubmitItem): Likewise. * qm/track/cmdline.py: Fix initialization of script_name. * qm/track/issue_class.py (default_categories): Make them empty. (StateModel.__init__): Interpret None for transitions as indicating that all possible transitions are acceptable. (_initailize_module): Simplify default state model. * qm/track/sql_idb.py: Correct typos. * qm/track/web/issue_class.py (handle_new_class): Likewise. * share/dtml/track/index.dtml: Likewise. More... almost 24 years ago
* qm/doc/manual/common-manual.xml: Adjust configuration file description. * qm/test/base.py (load_outcomes): Take a file object, not a path. * qm/test/cmdline.py (Command.__ExecuteRun): Adjust. (Command.__ExecuteSummarize): Likewise. * qm/test/web/run.py (TestResultsPage): Take expected_outcomes as a parameter. * qm/test/web/show.py (ShowPage.__init__): Adjust menu item handling. * qm/test/web/suite.py (ShowPage.__init__): Adjust menu item handling. * qm/test/web/web.py (DefaultDtmlPage.__init__): Add menu items for loading and saving expectations. (ExpectationsPage): New class. (LoadExpectedResultsPage): Likewise. (QMTestServer.__init__): Add support for loading and saving expectations. (QMTestServer.GetExpectedOutcomes): New method. (QMTestServer.HandleEditExpectations): Likewise. (QMTestServer.HandleLoadExpectedResults): Likewise. (QMTestServer.HandleSaveExpectations): Likewise. (QMTestServer.HandleRunTests): Pass expected outcomes to TestResultsPage. (QMTestServer.HandleSubmitExpectations): New method. (QMTestServer.HandleSubmitExpectationsForm): Likewise. * qm/share/dtml/test/expectations.dtml: New file. * qm/share/dtml/test/load-expected-results.dtml: Likewise. * qm/share/dtml/test/navigation-bar.dtml (handle_menu_select): Simplify menu handling. More... almost 24 years ago
Update tutorial More... almost 24 years ago
Remove old files More... almost 24 years ago
* qm/doc/test-manual.xml: Update for changes to GUI. * qm/test/base.py (load_outcomes): Adjust for changes to ... (load_results): ... this function. Take a file object, not a path, as input. Return one combined sequence of all results. * qm/test/cmdline.py (Command.__ExecuteSummarize): Adjust accordingly. * qm/test/web/web.py (DefaultDtmlPage): Add loading and saving results to the file menu. (LoadResultsPage): New class. (QMTestServer.__init__): Add support loading and saving results. (QMTestServer.HandleLoadResults): New method. (QMTestServer.HandleSaveResults): Likewise. (QMTestServer.HandleSubmitResults): Likewise. * share/dtml/test/load-results.dtml: New file. * share/dtml/test/navigation-bar.dtml: Add support for loading results. * share/web/common.js: Fix HTML. More... almost 24 years ago
Undo accidental commit More... almost 24 years ago
* qm/web.py (DtmlPage.MakeMenuItem): New method. (WebRequestHandler): Print thank you message when shutting down. (WebServer.Bind): Remove getsockname call. * qm/test/web/show.py (ShowPage.__init__): Add menu items. (ShowPage.MakeEditUrl): New method. (ShowPage.MakeRunUrl): Likewise. (ShowPage.MakeDeleteScript): Fix comment. * qm/test/web/suite.py (ShowPage.__init__): Add menu items. (ShowPage.MakeEditUrl): New method. (ShowPage.MakeRunUrl): Likewise. (ShowPage.MakeDeleteScript): Fix comment. * qm/test/web/web.py (DefaultDtmlPage.__init__): Set up menu items. (DefaultDtmlPage.GenerateStartBody): Provide the menu items to the navigation bar. (QMTestServer.__init__): Handle show-results. Store results permanently. (QMTestServer.HandleRunTests): Treat an empty set of test ids as the "." test suite. Use HandleShowResults to implement results display. (QMTestServer.HandleShowResults): New method. * share/dtml/test/dir.dtml: Rework for menus. * share/dtml/test/navigation-bar.dtml: Likewise. * share/dtml/test/results.dtml: Likewise. * share/dtml/test/show.dtml: Likewise. * share/dtml/test/suite.dtml: Likewise. More... almost 24 years ago
* qm/platform_win32.py (open_in_browser): Implement. More... almost 24 years ago
Fix typo. More... almost 24 years ago
* doc/manual/test-manual.xml (sec-specifying-test-class): Update. More... almost 24 years ago
* qm/test/base.py (_get_db_configuration_directory): Rename to... (get_db_configuration_directory): ... this. Update accordingly throughout. * qm/test/database.py (Database.GetClassPaths): Rewrite. * qm/test/xmldb.py (Database.GetClassPaths): Use base class implementation. More... almost 24 years ago
* qm/xmlutil.py (load_xml_file): Don't handle exceptions here. * qm/web.py (WebRequestHandler.do_POST): Expand fields here. (WebRequestHandler.__HandleXmlRpcRequest): Dump exception if verbose. (parse_form_query): Remove. * qm/structured_text.py (StructuredTextProcessor.NormalizeSpaces): Remove FIXME. Expand tabs. (__entity_char_regex): Remove FIXME. * qm/platform.py (open_in_browser): Remove. * qm/platform_win32.py (open_in_browser): Remove. * qm/platform_unix.py (get_user_name): Reimplement. * qm/fields.py (Field.MakePropertyControls): Remove FIXME. (TextField.CompareValues): Likewise. * qm/common.py (RcConfiguration): Remove FIXME. (format_traceback): Likewise. (find_program_in_path): Use os.pathsep. Use is_executable. (is_executable): Rewrite. (split_argument_list): Remove FIXME. (parse_time): Change FIXME to note. * qm/track/server.py (_script_base): Remove FIXME. * qm/track/issue_database.py (open): Remove FIXMEs. * qm/track/cmdline.py (Command.__PerformCreate): Remove FIXME. (Command.__PerformCreateIdb): Likewise. (Command.__ImportIssues): Likewise. * qm/track/web/query.py (QueryPage.MakePythonQueryHelp): Remove FIXME. (QueryPage.MakeCategorySelect): Likewise. (QueryPage.MakeStateSelect): Likewise. * qm/track/web/issue_class.py: Remove FIXME. (handle_submit_class): Remove FIXME. Don't try to handle new issue classes here. * qm/track/triggers/notification.py (NotifyFixedTrigger.GetSubscriberAddresses): Remove FIXME. (NotifyByUidFieldTrigger.GetSubscriberAddresses): Likewise. * qm/test/result.py (Result.MakeDomNode): Update comment. * qm/test/cmdline.py (Command.tdb_class_option_spec): New attribute. (Command.commands_spec): Add create-tdb. Alphabetize. (Command.Execute): Reorganize. Handle create-tdb. (Command.__ExecuteCreateTdb): New. (Command.__ExecuteRun): Remove FIXME. * qm/test/base.py (dtds): Add tdb-configuration. (_get_db_configuration_directory): New function. (_get_db_configuration_path): Likewise. (is_database): Likewise. (load_database): Use them. (create_database): Change database directory semantics. (_result_from_dom): Remove FIXME. * qm/test/web/web.py (QMTestServer.HandleRunTests): Remove FIXME. * qm/test/classes/command.py (make_result_for_exception): Rename to... (_make_result_for_exception): ... this. Comment it. Update accordingly throughout. * share/xml/tdb-configuration.dtd (class_name): Rename to... (class-name): ... this. * share/diagnostics/common.txt (xmlrpc exception): New diagnostic. * share/diagnostics/test.txt (new db message): Likewise (not test database): Likewise. * doc/manual/test-manual.xml (sec-testcmd-create-tdb): New section. (sec-reg-writing-database-classes): Update. * doc/manual/test-tour.xml (sec-testtut-setting-up): Likewise. * tests/QMTest: New directory. * tests/QMTest/configuration: New file. More... almost 24 years ago
* qm/test/run.py (CommandThread.__init__): Initialize Queue in a way that works with Python 1.5.2. (test_run): Likewise. More... almost 24 years ago
* qm/test/result.py (Result.GetCause): New function. (Result.keys): Fix typo. * qm/test/web/run.py (TestResultsPage): Do not derived from ResultStream. (TestResultsPage.GetOutcomes): New function. (TestResultsPage.GetTotal): Likewise. (TestResultsPage.GetTotalUnexpected): Likewise. (TestResultsPage.GetResultsWithOutcome): Likewise. (TestResultsPage.GetCount): Likewise. (TestResultsPage.GetUnexpectedCount): Likewise. (TestResultsPage.GetRelativeResults): Likewise. (TestResultsPage.GetDetailUrl): Likewise. * qm/test/web/web.py (ResultPage): New class. (StorageResultsStream): Likewise. (QMTestServer.HandleRunTests): Use it. (QMTestServer.HandleShowResult): New function. * share/dtml/test/result.dtml: New file. * share/dtml/test/results.dtml: Revise. More... almost 24 years ago
* README.sources: Mention quotes for string literals. More... almost 24 years ago
* qm/fields.py (SetField.__init__): Fix typo in comment. More... almost 24 years ago
* install.py: Install the class manifest. More... almost 24 years ago
* qm/async.py: Remove. * qm/common.py (parse_time): Handle Windows format for GMT. * qm/qm.sh: Handle qmtest-remote correctly. * qm/test/base.py (set_up_resource): Fix typo. (clean_up_resource): Likewise. * qm/test/qmtest-remote.py: Rework to avoid use of qm.async. * qm/test/run.py (CommandThread): New class. (Target.GetChannels): Remove. (Target.EnqueueRunTest): Use EnqueueCommand, not _EnqueueCommand. (Target.EnqueueSetUpResource): Likewise. (Target.EnqueueCleanUpResource): Likewise. (Target.OnReplyReady): Rename to ... (Target.OnReply): ... this. Rework. (LocalThread): New class. (SubprocessTarget): Use it throughout. (RemoteThread): New class. (RemoteShellTarget): Use it throughout. (RemoteDemultiplexerTarget): Remove. (TestRun.AddTestResult): Fold with ... (TestRun.AddResourceResult): ... into ... (TestRun.Result): ... this. (test_run): Adjust. (process_commands): Remove. * qm/test/classes/command.py (ExecTest): Adjust file closing for exception safety. More... almost 24 years ago
* qm/share/web/stylesheets/qm.css: Modify to work with Internet Explorer. More... almost 24 years ago
* qm/web.py (WebServer.TranslateRequest): Use os.path.isabs for robustness. More... almost 24 years ago
* qm/common.py (RcConfiguration.__Load): Do not crash if the HOME environment variable is not defined. More... almost 24 years ago
* doc/manual/common-manual.xml: Revise. * doc/manual/manual.xml: Likewise. * doc/manual/test-manual.xml: Likewise. * doc/manual/test-reference.xml: Remove. * doc/manual/test-tour.xml: Revise. * doc/manual/track-tour.xml: Revise. More... almost 24 years ago
Fix email address. More... almost 24 years ago
* doc/manual/manual.xml (track-reference): New entity. Reference it. * doc/manual/track-manual.xml (sec-qmtrack-configuration): New section. * doc/manual/track-reference.xml: New file. More... almost 24 years ago
* configure.in (DOCBOOK_DTD): Look for it in the standard place. * configure: Regenerate. More... almost 24 years ago
* qm/fields.py (FieldPropertyDeclaration): Rename to... (PropertyDeclaration): ... this. Adjust accordingly throughout. * qm/track/server.py (make_server): Use handle_shutdown_by_administrator. (handle_shutdown): Rename to... (handle_shutdown_by_administrator): ... this. (handle_shutdown): New function. * qm/track/issue_database.py (setup_for_test): Use SetSubscriptionCondition. * qm/track/issue_class.py (Trigger.class_name): New variable. (Trigger.property_declarations): Likewise. (Trigger.__init__): Rewrite. (Trigger.GetProperty): New method. (Trigger.SetProperty): Likewise. (Trigger.GetName): Use GetProperty. (Trigger.MakeDomNode): New method. (StateField.property_declarations): Adjust for PropertyDeclaration. (IssueClass.GetField): Fix error code. (IssueClass.MakeDomNode): Store triggers. (trigger_from_dom_node): New function. (from_dom_node): Load triggers. * qm/track/triggers/state.py (Trigger.class_name): New variable. (Trigger.property_declarations): Likewise. (Trigger.__init__): Pass propertis to parent. Don't use object attributes. (Trigger.Preupdate): Use GetProperty. * qm/track/triggers/notification.py (_NotifyTrigger.property_declarations): New variable. (_NotifyTrigger.__init__): Pass properties to parent. Don't use object attributes. (_NotifyTrigger.GetCondition): Use GetProperty. (_NotifyTrigger.SetFromAddress): Use SetProperty. (_NotifyTrigger.SetSubjectPrefix): Use GetProperty. (_NotifyTrigger.Postupdate): Likewise. (NotifyFixedTrigger.class_name): New variable. (NotifyFixedTrigger.__init__): Pass properties to parents. Don't use object attributes. (NotifyFixedTrigger.GetSubscriberAddresses): Use user database. (NotifyFixedTrigger.SetRecipientAddresses): New method. (NotifyFixedTrigger.GetRecipientAddresses): Use GetProperty. (NotifyFixedTrigger.SetRecipientUids): new method. (NotifyFixedTrigger.GetRecipientUids): Use GetProperty. (NotifyFixedTrigger.AddRecipientAddress): Use GetRecipientAddress and SetRecipientAddress. (_NotifyByFieldTrigger.property_declarations): New variable. (_NotifyByFieldTrigger.__init__): Pass properties to parent. Don't use object attributes. (_NotifyByFieldTrigger.GetFieldName): New method. (_NotifyByFieldTrigger.GetFieldContents): Use it. (NotifyByAddressFieldTrigger.class_name): New variable. (NotifyByAddressFieldTrigger.__init__): Pass properties to parent. Don't use object attributes. (NotifyByUidFieldTrigger.class_name): New variable. (NotifyByUidFieldTrigger.property_declarations): Likewise. (NotifyByUidFieldTrigger.__init__): Pass properties to parent. Don't use object attributes. (NotifyByUidFieldTrigger.SetAutomaticSubscription): Rename to... (NotifyByUidFieldTrigger.SetSubscriptionCondition): ... this. (NotifyByUidFieldTrigger.GetAutomaticSubscriptionCondition): Rename to... (NotifyByUidFieldTrigger.GetSubscriptionCondition): ... this. (NotifyByUidFieldTrigger.Preupdate): Use accessor. * qm/track/triggers/discussion.py (DiscussionTrigger.class_name): New variable. (DiscussionTrigger.property_declarations): Likewise. (DiscussionTrigger.__init__): Pass properties to parent. Don't use object attributes. (DiscussionTrigger.Preupdate): Use GetProperty. * qm/track/web/issue_class.py (handle_submit_subscription): Use SetSubscriptionCondition. * share/dtml/track/config-idb.dtml: Add shutdown button. * share/xml/issue-classes.dtd (issue-class): Add triggers. (trigger): New element. More... almost 24 years ago
* doc/manual/introduction.xml: Revise. * doc/manual/manual.xml: Likewise. * doc/manual/test-manual.xml: Likewise. * doc/manual/test-tour.xml: Likewise. * qm/test/cmdline.py (Command.db_path_option_spec): Change --db-path to --tdb. (Command.start_browser_option_spec): Remove. (Command.no_browser_option_spec): New variable. (Command.commands_spec): Adjust summarize command syntax. Rename server to gui. * qm/test/text_result_stream.py (TextResultSream.Summarize): Tweak. * qm/test/classes/file.py (FileContentsTest.Run): Fix typo. * share/diagnostics/test-help.txt: Revise description of test classes. * share/dtml/test/new.dtml: Revise. * share/tutorial/test/tdb/exec1.qmt: Right code that throws an exception, rather than simply computing an incorrect value. * share/tutorial/test/tdb/_classes/count.py: Revise for new test class API. More... almost 24 years ago
* qm/test/base.py (set_up_resource): Set up the action annotation when the result is created. * qm/test/base.py (clean_up_resource): Likewise. * qm/test/cmdline.py (Command.__ExecuteRun): Use unbufferred output for the results file. * qm/test/result.py (Result.__init__): Correct handling of default parameter. * qm/test/classes/command.py (Command.Run): Fix typos. More... almost 24 years ago