kukitlint

Registered by Balazs Ree

Since there will be more implementations for the server side command generation, there is need for a tool that can testify the validity of the generated payload compared to a given kukit payload version.

For this, the server implementations must implement a "command mirror" service. They receive a set of commands from the tester tool in JSON format, in the following way:

[(<commandname>, <selectorType>, [<selectorValue>, ...] , <parms>),
 ...
]

The selectorvalues are a list of parameters to the selector class. Normally there is zero or one parameter (but it can be more if the selector requires so)

for example:

 [('error', None, [], {'message': 'The error'})]

(this is a global command with no selector)

or:

 [('addClass', 'css', ['div.selected'], {'value': 'ghosted'}),
('addClass', 'css', ['h1.selected'], {'value': 'blinking'}),
]

The "command mirror" service's responsibility is
- to parse the data from JSON
- to produce the canonical kukit payload representation of it
- return this output to the tester.

The tester applies a series of input on the mirror service, and performs various tests on the output it receives.

If the result of the testing is all green, it means this implementation can claim to generate valid kukit payload version 1.x (depending on which version the tool tested)

The tool would run from command line. I suggest the final location of this tool under kss.base.

The Zope implementation of the "command mirror" would be implemented inside a demo. This would be used for developing the tester tool but it also will enable that we can write selenium versions of the same tests (and we can immediately use them in kss.base and both kss.core versions)

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
Balazs Ree
Direction:
Needs approval
Assignee:
Balazs Ree
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.