Skip to content

Test: Fix CI tests #52

@cadenmyers13

Description

@cadenmyers13

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.....

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions