-
Couldn't load subscription status.
- Fork 5
Description
Problem
Improve the CLI testing
sub issues:
Proposed solution
Step 1 is to figure out at a very high level what the task is. this is the UC process. Here are some examples. Parentheses are possible user cli syntax:
general cmi commands
listing packs/examples/profiles, seeing what packs/profiles are installed. etc.
UC 1
1. user wants to know what packs are available
2. user asks cmi (cmi pack list)
3. cmi lists them
UC 2
1. user wants to know what examples are available
2. users asks cmi (cmi example list)
3. cmi lists them
UC10
1. user wants to know what packs they have installed
2. user asks cmi
3. cmi lists the installed packs
UC11
1. user wants to know what profiles they have installed.
2. user asks cmi
3. cmi lists the installed profiles
commands for copying examples
UC 3
1. user wants to copy one of the examples
2. user tells cmi (cmi copy <ex>)
3. cmi copies everything to cwd to do the example
UC 12
1. user wants to copy example to a specific location in there directory
2. user tells cmi what directory to copy what example to
3. cmi copies that examples
UC 4
1. as UC 3 but user specifies a different target file-path
2. cmi copies everything to target (cmi copy <ex> --target-dir path/)
UC 5
1. as UC 4 but user specifies a list of examples at the same time (cmi copy <ex1> <ex2>)
UC 7
1. as UC 4 but user wants all the examples from pack X (cmi copy <pack>)
IC 8
1. as UC 7 but user wants all the examples from a list of packs (cmi copy <pack1> <pack2>)
UC 9
1. as UC 8 but user wants all the examples from everything (cmi copy all)
Next is a discussion of which UCs we want to implement. Roughly speaking let's assume we want them all.
Next is a first cut at architecture. Good to discuss it a bit, but what structure do we want, data objects, etc. to cover as much of the UCs as possible? What is a list of tasks that the code would have to do to accomplish the tasks? e.g.,
generate a dict of packs and examples dynamically from all the examples it finds.
design CLI for the above tasks
write functions that pull from the examples dict for the various listing and copying tasks.
and so on....
Next is discuss and finalize these things and we can start on the code.....