dtf 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. data/.gitignore +44 -0
  2. data/.rspec +1 -0
  3. data/.rvmrc +52 -0
  4. data/.travis.yml +16 -0
  5. data/Gemfile +26 -0
  6. data/History.md +75 -0
  7. data/LICENSE +19 -10
  8. data/README.md +67 -45
  9. data/Rakefile +9 -0
  10. data/TODO +25 -0
  11. data/app/models/analysis_case.rb +12 -0
  12. data/app/models/case_test.rb +10 -0
  13. data/app/models/user.rb +12 -0
  14. data/app/models/verification_suite.rb +22 -0
  15. data/bin/dtf +24 -3
  16. data/bin/dtf-create_user +11 -0
  17. data/bin/dtf-create_vs +10 -0
  18. data/bin/dtf-delete_user +18 -0
  19. data/bin/dtf-delete_vs +14 -0
  20. data/bin/dtf-setup +7 -0
  21. data/db/migrate/20120503050925_create_users.rb +15 -0
  22. data/db/migrate/20120508000959_create_verification_suites.rb +14 -0
  23. data/db/migrate/20120616203047_create_analysis_cases.rb +15 -0
  24. data/db/migrate/20120616203436_create_case_tests.rb +15 -0
  25. data/db/schema.rb +48 -0
  26. data/doc/.gitkeep +0 -0
  27. data/dtf.gemspec +36 -0
  28. data/examples/db/config.yml +25 -0
  29. data/lib/config/environment.rb +49 -0
  30. data/lib/dtf.rb +4 -91
  31. data/lib/dtf/version.rb +5 -0
  32. data/lib/tasks/setup.thor +52 -0
  33. data/spec/acceptance/0001_create_basic_models.feature +9 -0
  34. data/spec/acceptance/0002_create_basic_associations.feature +11 -0
  35. data/spec/acceptance/0003_execute_help_switch.feature +7 -0
  36. data/spec/fabricators/analysis_case_fabricator.rb +7 -0
  37. data/spec/fabricators/case_test_fabricator.rb +6 -0
  38. data/spec/fabricators/user_fabricator.rb +8 -0
  39. data/spec/fabricators/verification_suite_fabricator.rb +6 -0
  40. data/spec/models/analysis_case_spec.rb +21 -0
  41. data/spec/models/case_test_spec.rb +20 -0
  42. data/spec/models/user_spec.rb +21 -0
  43. data/spec/models/verification_suite_spec.rb +21 -0
  44. data/spec/spec_helper.rb +18 -0
  45. data/spec/steps/feature_steps.rb +18 -0
  46. data/spec/support/custom_matchers/model_steps.rb +46 -0
  47. data/spec/support/helpers/.gitkeep +0 -0
  48. metadata +303 -70
  49. data/lib/dtf/active_patches.rb +0 -21
  50. data/lib/dtf/plugins.rb +0 -102
  51. data/lib/plugins/dtf/comment_test_input.rb +0 -40
  52. data/lib/plugins/dtf/env_match_test.rb +0 -18
  53. data/lib/plugins/dtf/error_summary_output.rb +0 -93
  54. data/lib/plugins/dtf/output_match_test.rb +0 -17
  55. data/lib/plugins/dtf/stats_output.rb +0 -73
  56. data/lib/plugins/dtf/status_test.rb +0 -17
  57. data/lib/plugins/dtf/text_output.rb +0 -52
data/.gitignore ADDED
@@ -0,0 +1,44 @@
1
+ .project
2
+ *~
3
+ .config
4
+ pmip/**/*
5
+ .idea/**/*
6
+ *.log
7
+ pkg
8
+ .yardoc
9
+ dtf.sublime-workspace
10
+ _yardoc
11
+ tmp
12
+ Thumbs.db
13
+ *.bak
14
+ .iws
15
+ pmip
16
+ .DS_Store
17
+ *.rbc
18
+ .svn/
19
+ /db/config.yml
20
+ *.gem
21
+ InstalledFiles
22
+ Gemfile.lock
23
+ rdoc
24
+ dtf.sublime-project
25
+ *.swp
26
+ lib/bundler/man
27
+ .bundle
28
+ ~*
29
+ coverage
30
+ .*proj
31
+ *.iml
32
+ .idea/
33
+ *.patch
34
+ spec/reports
35
+ .idea
36
+ node_modules/
37
+ /db/*.sqlite3
38
+ .classpath
39
+ target/
40
+ .settings/
41
+ test/version_tmp
42
+ *.diff
43
+ .ipr
44
+ test/tmp
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ -r turnip/rspec --color
data/.rvmrc ADDED
@@ -0,0 +1,52 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # This is an RVM Project .rvmrc file, used to automatically load the ruby
4
+ # development environment upon cd'ing into the directory
5
+
6
+ # First we specify our desired <ruby>[@<gemset>], the @gemset name is optional,
7
+ # Only full ruby name is supported here, for short names use:
8
+ # echo "rvm use 1.9.3" > .rvmrc
9
+ environment_id="ruby-1.9.3-p194@dtf"
10
+
11
+ # Uncomment the following lines if you want to verify rvm version per project
12
+ rvmrc_rvm_version="1.14.1 (master)" # 1.10.1 seams as a safe start
13
+ eval "$(echo ${rvm_version}.${rvmrc_rvm_version} | awk -F. '{print "[[ "$1*65536+$2*256+$3" -ge "$4*65536+$5*256+$6" ]]"}' )" || {
14
+ echo "This .rvmrc file requires at least RVM ${rvmrc_rvm_version}, aborting loading."
15
+ return 1
16
+ }
17
+
18
+ # First we attempt to load the desired environment directly from the environment
19
+ # file. This is very fast and efficient compared to running through the entire
20
+ # CLI and selector. If you want feedback on which environment was used then
21
+ # insert the word 'use' after --create as this triggers verbose mode.
22
+ if [[ -d "${rvm_path:-$HOME/.rvm}/environments"
23
+ && -s "${rvm_path:-$HOME/.rvm}/environments/$environment_id" ]]
24
+ then
25
+ \. "${rvm_path:-$HOME/.rvm}/environments/$environment_id"
26
+ [[ -s "${rvm_path:-$HOME/.rvm}/hooks/after_use" ]] &&
27
+ \. "${rvm_path:-$HOME/.rvm}/hooks/after_use" || true
28
+ if [[ $- == *i* ]] # check for interactive shells
29
+ then echo "Using: $(tput setaf 2)$GEM_HOME$(tput sgr0)" # show the user the ruby and gemset they are using in green
30
+ else echo "Using: $GEM_HOME" # don't use colors in non-interactive shells
31
+ fi
32
+ else
33
+ # If the environment file has not yet been created, use the RVM CLI to select.
34
+ rvm --create use "$environment_id" || {
35
+ echo "Failed to create RVM environment '${environment_id}'."
36
+ return 1
37
+ }
38
+ fi
39
+
40
+ # If you use bundler, this might be useful to you:
41
+ # if [[ -s Gemfile ]] && {
42
+ # ! builtin command -v bundle >/dev/null ||
43
+ # builtin command -v bundle | GREP_OPTIONS= \grep $rvm_path/bin/bundle >/dev/null
44
+ # }
45
+ # then
46
+ # printf "%b" "The rubygem 'bundler' is not installed. Installing it now.\n"
47
+ # gem install bundler
48
+ # fi
49
+ # if [[ -s Gemfile ]] && builtin command -v bundle >/dev/null
50
+ # then
51
+ # bundle install | GREP_OPTIONS= \grep -vE '^Using|Your bundle is complete'
52
+ # fi
data/.travis.yml ADDED
@@ -0,0 +1,16 @@
1
+ rvm:
2
+ - 1.9.3
3
+ before_script:
4
+ - RAILS_ENV='development' bundle exec thor dtf_setup:config
5
+ - RAILS_ENV='development' bundle exec rake db:migrate
6
+ - RAILS_ENV='development' bundle exec gem list
7
+ script: RAILS_ENV='development' bundle exec rspec spec --format doc
8
+ language: ruby
9
+ notifications:
10
+ irc:
11
+ channels:
12
+ - "irc.freenode.org#dtf-gems"
13
+ email:
14
+ recipients:
15
+ - me@deryldoucette.com
16
+ on_failure: change
data/Gemfile ADDED
@@ -0,0 +1,26 @@
1
+ # -*- coding: UTF-8 -*-
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ # Specify your gem's dependencies in dtf.gemspec
6
+ group :development, :test do
7
+ #gem "pry", :git => "https://github.com/pry/pry.git"
8
+ #gem "pry-doc", :git => "https://github.com/pry/pry-doc.git"
9
+ #gem "method_source", :git => "https://github.com/banister/method_source.git"
10
+ gem 'pry'
11
+ gem 'pry-doc'
12
+ gem 'pry-debugger'
13
+ gem "pry-git"
14
+ gem "pry-developer_tools"
15
+ gem "pry-syntax-hacks"
16
+ gem "pry-editline"
17
+ gem "pry-highlight"
18
+ gem "pry-buffers"
19
+ gem "pry-stack_explorer"
20
+ gem "pry-exception_explorer"
21
+ gem "jist"
22
+ gem "pry-theme"
23
+ gem 'simplecov'
24
+ end
25
+
26
+ gemspec
data/History.md ADDED
@@ -0,0 +1,75 @@
1
+
2
+ 0.2.2 / 2012-08-08
3
+ ==================
4
+
5
+ * Fixed up included baseline pry and related gems. Now using pry-debugger which uses debugger gem.
6
+ * Forgot to add doc/.gitkeep so that git retains the (currently) empty directory
7
+ * Removed doc directory from .gitignore since we plan on storing docs here
8
+ * Added /db/config.yml and /db/*.sqlite3 to .gitignore file
9
+ * We run thor dtf_setup:config so no need to put the config there ahead of time.
10
+ * Defaulted the gem to RAILS_ENV='production'. Modified .travis.yml to set this to 'development' before running commands. This affects ActiveRecord database selection, and whether testing gems are available.
11
+ * Updated associations to include dependent destroy and autosave
12
+ * Added entry to TODO to remember to change ENV['RAILS_ENV'] to production upon gem release. Also put TODO note in environment.rb [ci skip]
13
+ * Added config.ymla nd dtf-setup
14
+ * Added dtf-setup script to do setup
15
+ * Forgot to add require 'thor' for tasks
16
+ * Forgot to remove pry-coolline from environment.rb as well. sigh
17
+ * Forgot to commit Gemfile without pry-coolline. It breaks a lot of core functionality features in pry which uses readline instead, so tab completion and the like are busted.
18
+ * Added bundle exec gem list to before_script for travis. Travis doesn't output a list of gems used, and since this is itself a gem there is no Gemfile.lock committed. So this is the only way to see what versions of dependencies are being installed since the version isn't locked down within the gemspec.
19
+ * Incorrect numbering of tests. Really just these 2 files should be numbered because they should run before all other tests. The reasoning is that by testing basic model creation, and basic core associations first then all other tests should succeed so run them first.
20
+ * Added additional steps definitions and feature for testing basic model associations
21
+ * Removed auto-fabrication of a verification suite for fabricated analysis cases as that will cause problems in testing.
22
+ * Updated migrations to reflect changeout of HABTM for has_many :through. Deleted HABTM join table migration.
23
+ * Changed out HABTM association from models for belongs_to and has_many :through
24
+ * Just adding dep for pry-theme so I can use different color coding. No code changes. [ci skip]
25
+ * Fixed the matcher thanks to workmad3 explaining what I was doing wrong. Bad matcher.
26
+ * Split out to :association as workmad3 was indicating. But for some reason its not finding the step anymore. Getting 'No such step' on user ownership tracking through verification_suites.
27
+ * Broke CI testing because pry is not being loaded. Forgot to add :test group to Gemfile
28
+ * bin directory should have contents +755.
29
+ * Added RVM version check to .rvmrc file. Moved Pry development dependencies to Gemfile from gemspec because gemspec does not support using :git with dependencies. Gemfile does.
30
+ * For some reason git marked bin/.gitkeep chmod 755. NO, bad git
31
+ * Added a dependency on vcr gem. dtf will contain the core of the connection API which each sub-module gem extends for its portion. In order to be able to replay with exactness, I decided to try out 'vcr'.
32
+ * Last bit of ordering on case_test
33
+ * Reordering associations
34
+ * Fix association ordering in models
35
+ * Added notes for going forward to TODO list. [ci skip]
36
+ * Modified rspec model tests to ensure Models are properly created, and persisted.
37
+ * Added RSpec steps for '0001_create_basic_models.feature' using fabrication of each of the base models
38
+ * Added core models and ownership directions test, as a turnip feature
39
+ * Fixed .travis.yml config. Forgot to add thor dtf_setup:config for copying db/config.yml
40
+ * Added travis-ci.org .travis.yml configuration file for public CI testing
41
+ * Fixed fabricators as they had bad var names and logic. Fixed and added specs for each model. Tests and Fabricators PASS
42
+ * Added RSpec and Turnip infrastructure, and a basic User spec
43
+ * Added lib/config/environment.rb for environmental control. Updated .gitignore to remove config dir
44
+ * Added fabrication gem to gemspec. Created Fabricators for each model
45
+ * Added logic to lib/dtf/rb to load the model files so that require 'dtf' autoloaded them
46
+ * Renamed incorrectly named AnalysisSuite to AnalysisCase and renamed associated migration. Fixed typo in AnalysisCase and CaseTest validations. Added additional deps for pry to dtf.gemspec for development mode. Added corrected db/schema.rb
47
+ * Fixed formatting of schema.rb
48
+ * Fixed typos in migrations and added db/schema.rb to repo
49
+ * Mode change on dtf-create_vs script
50
+ * Updated dependencies for Active(Record|Model|Support) and json(_pure) to gemspec
51
+ * Added models and migrations for User, Verification Suite, Analysis Case, and Case Test with associations migration
52
+ * Added basic outline of dtf-* management scripts
53
+ * Added bin directory as this is where the control/management scripts will live.
54
+ * Added db/.gitkeep and db/migrate/.gitkeep to ensure directory structure stays even if empty
55
+ * Renamed database.yml to config.yml for standalone_migrations. renamed examples/config to examples/db to coincide with destination dir names
56
+ * db/migrations is deprecated for d/migrate so changed the dirname and related thor tasks
57
+ * Added example sqlite3 dtf_*.sqlite3 database.yml file. This gets copied by thor dtf_setup:config
58
+ * Added directory logic to the thor install and config options because the copy operatins are copying files relative to the gem to places relative to the user's project, so the paths have to change.
59
+ * Changed thor task class to DtfSetup to isolate namespace
60
+ * Added db/migrations directory and updated setup.thor with install and config tasks
61
+ * Updated .gitignore to ignore config/ and added examples directory with config subdir for thor setup:install task
62
+ * Added thor setup task
63
+ * Incorrect rspec version currently
64
+ * Updated gemspec to rely on rspec 2.10.1 or higher, and am changing to using thor for task management
65
+ * Added .idea and pmip to gitignore
66
+ * Added a TODO file for tracking forward movement
67
+ * Added .idea and pmip directories to .gitignore file.
68
+ * Needlessly added dependency. Calling gem 'rspec' pulls in rspec-core, rspec-expectations, and rspec-mocks so no need to explicitly declare rspec-expectations
69
+ * Added standalone_migrations tasks call to Rakefile
70
+ * Added rspec and turnip infrastructure directories
71
+ * Added .rspec file to connect turnip
72
+ * Development dependency reordering
73
+ * Added pry and related gems, plus rspec-expectations, and standalone_migrations development dependencies
74
+ * Extended description of gem to better define gem contents and function
75
+ * Initial commit of DTF's dtf infrastructure gem
data/LICENSE CHANGED
@@ -1,13 +1,22 @@
1
- Copyright (c) 2011 Michal Papis
1
+ Copyright (c) 2012 Deryl R. Doucette
2
2
 
3
- Licensed under the Apache License, Version 2.0 (the "License");
4
- you may not use this file except in compliance with the License.
5
- You may obtain a copy of the License at
3
+ MIT License
6
4
 
7
- http://www.apache.org/licenses/LICENSE-2.0
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
8
12
 
9
- Unless required by applicable law or agreed to in writing, software
10
- distributed under the License is distributed on an "AS IS" BASIS,
11
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- See the License for the specific language governing permissions and
13
- limitations under the License.
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md CHANGED
@@ -1,66 +1,88 @@
1
1
  # Deryls Testing Framework
2
2
 
3
- DTF is a pluggable framework for testing shell scripts (at least now).
4
- DTF also is an umbrella which incorporates (eventually) multiple gems, each of which provides additional functionality
5
- to DTF. DTF is the skeleton upon which all other dtf-* gems build.
3
+ DTF is designed to be a modular framework for testing everything from shell scripts, to Ruby, to Rails apps.
6
4
 
5
+ DTF is an umbrella which is designed to incorporate multiple sub-gems, each of which provides additional
6
+ functionality to DTF. DTF is the master skeleton within which all other dtf-* gems integrate.
7
7
 
8
- ## Usage
8
+ ## Internal architecture
9
9
 
10
- $ gem install dtf
11
- $ dtf <path/to/file>_comment_test.sh
10
+ DTF is designed in such a way that, with the master skeleton in place, one has only to load additional plugins
11
+ from any available DTF extension gem to add additional functionality. This can be anything ranging from
12
+ additional languages such as Ruby, Python, C, C++, etc, to testing methods and methodologies.
12
13
 
13
- ## Comment tests
14
+ ## Current Status
14
15
 
15
- Filename has to end with _comment_test.sh
16
+ DTF is 100% Alpha quality right now. For those that don't know what that means, generally this means DTF is
17
+ comprised of code with a vastly high potential for buggy code that may or may not even run. Consider DTF
18
+ to be experimental until further notice. This README will be updated to reflect when DTF reaches a
19
+ 'stable' quality.
16
20
 
17
- Example test file:
21
+ DTF will gladly, and willingly, review any Pull Requests sent to us, and incorporate them as they fit with
22
+ the mission goal of DTF. Please bear in mind that DTF is a rolling Project. This means that the definition
23
+ of what DTF is, and how that is implemented is not firmly etched in stone yet, so both of those can, and
24
+ most likely will, change as time passes. If you can deal with that, please, by all means, feel free to
25
+ contribute.
18
26
 
19
- ## User comments start with double #
20
- ## command can be writen in one line with multiple tests:
21
- true # status=0; match=/^$/
22
- ## or tests can be placed in following lines:
23
- false
24
- # status=1
27
+ **NOTE: DTF was originally released with a soon-to-be 100% different codebase, and gemified. This version
28
+ will be gemified as well, _but_ in order to ensure that we can continue to use the 'dtf' name on
29
+ rubygems.org we have to bump the version number by .1 and go from there. So, that changes our new
30
+ numbering scheme a bit. The next release of 'dtf' that will be 100% the _new_ codebase will be 0.2.2. The
31
+ last 'dtf' that is the original code base is: dtf-0.2.1 on rubygems.org. Thanks for bearing with DTF while
32
+ the codebase change is swapped over.
25
33
 
26
- ### Matchers
34
+ ## Branches
27
35
 
28
- The test can be negated by replacing `=` with `!=`
36
+ DTF has a branching and tagging topology as follows, and applies to DTF and _all_ sub-module gems:
37
+
38
+ * master - This branch on the DTF control gem, and _all_ dtf-<blah> sub-module gems is for **development**
39
+
40
+ * stable - This branch on the DTF gem, and _all_ dtf-<blah> sub-modules, is 'stable' or 'production'
41
+ quality. Anything on this branch is to be considered safe and usable for everyday stuff.
42
+
43
+ * hotfix/>blah> branches are **stable** quality only. These are for running fixes to a particular stable
44
+ branch and will usually result in generating a new version tag. For example, if the hotfix was applied
45
+ against v2.3.4, then a tag of v2.3.5 would be generated once that hotfix was proven to be tested and
46
+ stable.
47
+
48
+ * feature/<blah> branches are **development** quality only. This is for work on individual new features
49
+ that _will_ be rolled into DTF or sub-module gems.
50
+
51
+ * playground/<blah> branches are **alpha** quality only. These are for developers to work out either
52
+ feasibilty of way-in-the-future ideas or to try something out that may, or may not, be incorporated into
53
+ the DTF or its sub-modules. _These are 100% to9 be considered throw-aways. They could disappear at any
54
+ moment, and any user of the DTF framework that relies on these branches is on their own. NO SUPPORT will
55
+ be provided of any kind for these branches_ so everyone is clear on that.
56
+
57
+ * All 'stable' production releases will be tagged. Only those releases will be tagged starting with a v,
58
+ and a series like #.#.# where the first '#' starts with 1 going to whatever, in progressive order. This
59
+ represents an industry standard versioning format. NOTE: v0.#.# is NOT considered a 'stable' release!
60
+ This is normal in the industry for Projects just starting out. When a version is reached that we believe
61
+ to be of sufficient quality to be denoted, and tagged, as our first Stable release, it will be marked as
62
+ v1.#.# and NOT v0.#.#. The remaining '#' in the example denote our Minor, and Change '#' levels. For
63
+ example, #.#.# is Major.Minor.Change_Number_within_Minor. This means the following. Given a 'v2.3.4' tag,
64
+ this would denote:
65
+
66
+ * The 2nd official 'stable' release.
67
+ * The 3rd Minor change to the 2.x series
68
+ * The 4th applied change within the 3rd Minor series.
29
69
 
30
- - status=<number> - check if command returned given status (0 is success)
31
- - match=/<regexp>/ - regexp match command output
32
- - env[<var_name>]=/<regexp>/ - regexp match the given environment variable name
70
+ Until such time as the first official stable release is made, all v0.#.# tags up to but not including v0.5.0
71
+ are of Alpha quality. Tags v0.5.# up to but not including v1.0.0 are to be considered Beta quality. This gives
72
+ us plenty of room for Alpha _and_ Beta work before an official 'stable' release within the numbering system.
73
+ ** This applies to the DTF control gem, and _all_ dtf-<blah> sub-module gems! Please bear this in mind! **
33
74
 
34
- ## Example
75
+ We are making this a uniform policy across all levels of DTF to ensure that what you think something is,
76
+ really is when it comes to version numbers and what they mean. This _will_ be a _strictly_ enforced policy.
35
77
 
36
- $ bin/dtf example_tests/comment/*
37
- F..
38
- ##### Processed commands 2 of 2, success tests 2 of 3, failure tests 1 of 3.
39
- $ false
40
- # failed: status = 0 # was 1
41
-
42
- $ bin/dtf example_tests/comment/* --text
43
- ##### starting test failure.
44
- $ false
45
- # failed: status = 0 # was 1
46
- ##### starting test success.
47
- $ true
48
- # passed: status = 0
49
- # passed: status != 1
50
- ##### Processed commands 2 of 2, success tests 2 of 3, failure tests 1 of 3.
51
78
 
52
- ## Internal architecture
79
+ ## Installation
53
80
 
54
- Framework will load plugins from any available gem and local `lib/` path, for example:
81
+ To Be Announced
55
82
 
56
- lib/plugins/dtf/text_output.rb
57
- lib/plugins/dtf/status_test.rb
58
- lib/plugins/dtf/comment_test_input.rb
59
83
 
60
- The search pattern is:
84
+ ## Usage
61
85
 
62
- lib/plugins/dtf/*.rb
86
+ To Be Announced
63
87
 
64
- And plugins are selected with:
65
88
 
66
- lib/plugins/dtf/*_{input,test,output}.rb
data/Rakefile ADDED
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env rake
2
+ require "bundler/gem_tasks"
3
+
4
+ begin
5
+ require 'tasks/standalone_migrations'
6
+ rescue LoadError => e
7
+ puts "gem install standalone_migrations to get db:migrate:* tasks! (Error: #{e})"
8
+ end
9
+
data/TODO ADDED
@@ -0,0 +1,25 @@
1
+ Make sure to change ENV['RAILS_ENV'] to default to "production" upon release
2
+
3
+ Write control/management scripts
4
+ Ex: writing the scripts to add users, and create/delete
5
+ verification suites/analysis cases from the commandline.
6
+
7
+ Esure that the thor tasks for copying the dtf migrations and db config into a
8
+ project. which work now, get tests written to show they do.
9
+
10
+ Properly document the params for DTF's dtf-* commands, as well as integration
11
+ docs for sub-gems
12
+
13
+ Then its on to dtf-session to rewrite it so that when it includes dtf, the thor
14
+ tasks are registered and usable, and to redo the code to use the new schema
15
+
16
+ Then on to dtf-rvm gem, dtf-sm gem, and dtf-shell
17
+
18
+ Those 3 gems would provide a full suite for testing ruby code, rvm, shell code and
19
+ sm directly, when coupled with dtf master gem. Then we can build other framework
20
+ gems.
21
+
22
+ dtf-session becomes a dependency of dtf-shell which will be written to support
23
+ specific Shells
24
+
25
+ dtf-rvm will have a dependency on both dtf-session, and rvm gems
@@ -0,0 +1,12 @@
1
+ # -*- coding: UTF-8 -*-
2
+
3
+ class AnalysisCase < ActiveRecord::Base
4
+
5
+ attr_accessible :name, :description
6
+ validates_presence_of :name, :description
7
+
8
+ belongs_to :verification_suite, :autosave => :true
9
+ belongs_to :user, :autosave => :true
10
+ has_many :case_tests, :dependent => :destroy
11
+
12
+ end
@@ -0,0 +1,10 @@
1
+ # -*- coding: UTF-8 -*-
2
+
3
+ class CaseTest < ActiveRecord::Base
4
+
5
+ attr_accessible :description, :cmd
6
+ validates_presence_of :description, :cmd
7
+
8
+ belongs_to :analysis_case, :autosave => :true
9
+ has_one :verification_suite, :through => :analysis_case, :autosave => :true
10
+ end