tests

Clone Tools
  • last updated 17 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- Added two new templates: method.html.tmpl and submethod.html.tmpl - Generalised the support for sub-commands and sub-methods, including a shortcut notation for tag lines. - Adding the special handling of initcmd blocks of attribute slots: They are processed as @param specifications of their owning (class) object. In a next step, I will limit this special handling to the first comment block only, while subsequent ones are evaluated in the context of the slot object itself. - Fixed an issue with cleaning up the processing-related mixin classes in the CommentBlockParser: As the nested notation of doc entities can conflict with relation slot forwarders (*::info::mixin vs. *::info mixin <add|delete>), I revert to using ::nsf::relation directly. - Fixed the default namespace resolution (still needs some review, once all use cases are figured out!) Changed nx and nsf documentation accordingly. - Add first doc text for Object->info() and its sub-methods (for testing purposes, merely) - Added an initial implementation for parsing level support. By introducing skipping axes into the tag notation (e.g., @..param), we can now differentiate between different scopes of applications for tags. This has a number of advantages: a) processing becomes more efficient (skip-level annotated tags can be identified early), b) we do not have maintain different tag labels for different parsing levels (e.g., @child-object vs. @object), ... - Parsing levels have to be maintained within the documentation processor and provided to the comment block parsers at work. This still has to be accomplished. - Adapted the naming scheme for qualifier tags (for now). Instead of "child" scopes, we coerce the entity names using namespace delimiters (this fits nested objects nicely) - Changed the resolution behaviour for dotted tag labels: Intermediate nodes (i.e., entities) are not allocated anymore, on the fly. Rather, it is a pure id resolution, except from the leaf element which is effectively initialised as a documentation entity. This has major implications: It requires partof entities to exist prior to any part entity. However, the id resolution work can later be reused when introducing the new tag notations into the link block markers in the templating engine (avoiding zombie and widely undescribed doc entities). - Started shifting id generation into part attributes (for the time being). Probably I will do so permanently to avoid the complexity in the various new() factories for doc entity types. - Adjusted the tests accordings and added many more on the navigatable tag notation. - Renamed EntityClass and PartClass into Tag and PartTag. The meta-class names so better reflect their purpose as entity factory classes, based on the tag notation scheme. Added a QualifierTag meta-class which marks tags (@class, @object, @command) which impose extra requirements when not being part of another entity (in particular, default namespace resolution). If not part of another entity, they represent *qualifying* language constructs, i.e. language constructs which help identify other elements (command -> subcommand, object -> nested object or method). - Started harmonising the entity class hierarchy (not ready cooked yet): Entity < StructuredEntity < ContainerEntity < @project < @method < @package < PartEntity < @object (@param) < @class < @command The most important change is that all entities (entity instances) can become parts, however, only a single entity class (@param) is critical about it.

  1. … 7 more files in changeset.
- new flag for configure: "nx::configure checkarguments on|off" - turn off argument-checking for non-converters, when checking is off (per default, it is on) - extended regression test for optional argument checking

  1. … 7 more files in changeset.
- new flag for configure: "nx::configure checkresult on|off" - turn off result-checking for non-converters, when checking is off (per default, it is on) - extended regression test for optional result checking

  1. … 5 more files in changeset.
- renamed slot attribute "noforwarder" to "nosetter" - method parameter can now use option "nosetter" to allow object parameterization witout providing a setter method (example: "Class create C -parameter {x:integer,nosetter}") - extended regression test to include "nosetter"

  1. … 2 more files in changeset.
- new parameter option "convert" to signal that an application specific parameter checker should convert the value (takes the result of the methods as conversion result) - added parameters for slots "allowemtpy" and "convert" - extended regression test

  1. … 5 more files in changeset.
- extended regression test

- added flag -complain to ::nsf::is - removed ::nsf::parametercheck

  1. … 4 more files in changeset.
- report "invalid parameter" in nsf::is and parametercheck, even when no-complain is used.

  1. … 2 more files in changeset.
- some cleanup

  1. … 2 more files in changeset.
- changed argument order on nsf::is to make it conformant with Tcl conventions - removed objectproperty, replaced it by ::nsf::is - move functionalizy of objectproperty to make "obj info is ..." more efficient

  1. … 9 more files in changeset.
- minimal changes

  1. … 2 more files in changeset.
- fix onbsolete objectproperty inside catch

- replaced argument order on objectproperty to make it conformant with Tcl conventions - updated migration guide

  1. … 9 more files in changeset.
- Replaced the former "exception" handling mechanism by a simplified one. This speeds up e.g. the generation of the current nx.tcl documentation by 15-20%. - Adjusted the tests for the modified CommentBlockParser interface. - Implemented a first version of the revised tagline notation. Changed the documentation in nx.tcl and predefined.tcl accordingly. - Discriminate between parsing simple and complex part entities. In the simple case, multi-line part sections are not allowed anymore. - Adopted the recent changes in the object introspection interfaces

  1. … 4 more files in changeset.
- removed "infoObjectMethod" and "infoClassMethod" - replaced ::nsf::cmd::ClassInfo2 by ::nsf::cmd::ClassInfo - replaced ::nsf::cmd::ObjectInfo2 by ::nsf::cmd::ObjectInfo

  1. … 7 more files in changeset.
- introduced ::nsf::isobject - replaced in all scripts "::nsf::objectproperty ... object" by isobject

  1. … 11 more files in changeset.
- removed "nsf::is ... -type ...." - adoped emulation layer in xotcl2 accordingly - extended regression test

  1. … 5 more files in changeset.
- removed "objectproperty .... type" - renamed isSubType() to IsSubType() - adoped emulation layer in xotcl2 accordingly - added two tests for "info has type" in regression test

  1. … 6 more files in changeset.
- removed "objectproperty .... hasmixin" - removed "nsd::is ... -hasmixin ...." - removed type-converter "type=hasmixin" - adoped emulation layer in xotcl2 accordingly - added two tests for "info has mixin" in regression test

  1. … 6 more files in changeset.
- implemented XOTclObjInfoHasMixinMethod() and XOTclObjInfoHasTypeMethod() - renamed "$obj info hasnamespace" to "$obj info has namespace" - added "$obj info has mixin $class" - added "$obj info has type $class" - extended regression test for parametercheck/objectproperty/is

  1. … 5 more files in changeset.
- make sure to test next to non-existing shadowed method in connections with filters and unknwon handlers

  1. … 1 more file in changeset.
- fixed silent (scripted) unknown handler. - reavtivated corresponding regression test - extended regression tests (call unknown method with filter with and without unknown handlers)

  1. … 3 more files in changeset.
- Refactoring templating code: Separated generic and backend-specific templating behaviour into distinct classes: BaseTemplateData and NxDocTemplateData. Rewrote the getter logic for the @doc strings to retrieve different representations (as_text() and as_list()). - Multi-line block markers: To achieve this, I moved the handling of block markers into the template data classes. - Adjusted the tests for the changes ...

  1. … 5 more files in changeset.
- added test/subcmd.tcl

Temporarily fixed an issue with cleaning up comment section states set on an entity object. This needs to be improved and to be made more robust!

  1. … 1 more file in changeset.
- backported fix for xotcl 1.6.6 reported by kristoffer lawsow, which helps just partly here - extended regression test

  1. … 1 more file in changeset.
- fix requiredness of last argument in parametercheck - return "object" for "info method type ...." when method is an object. - return valid creation command in "info method definition ...." when method is an object. - extend regression test

  1. … 4 more files in changeset.
Adding tests for multi-line param descriptions

- Added an experimental gathering facility for part objects, relative to a given entity object. It returns a [dict] which allows to reuse the parts gathered throughout the templates rendering process. - Moved the process=@* methods to the doc object (this increases the cohesion). - Adjusted the current documentation artifacts for the changes (@object -> @class where applicable).

  1. … 5 more files in changeset.
- reanimated 5 tests in tests/destroytest.tcl

  1. … 1 more file in changeset.