teuton 2.1.11 → 2.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +15 -12
  3. data/bin/check_teuton +0 -2
  4. data/docs/changelog/ideas.md +132 -0
  5. data/docs/changelog/v2.1.md +14 -122
  6. data/docs/changelog/v2.2.md +52 -28
  7. data/docs/changelog/version2.1.md +4 -0
  8. data/docs/commands/README.md +58 -15
  9. data/docs/commands/example_check.md +0 -4
  10. data/docs/commands/example_run.md +0 -4
  11. data/docs/dsl/README.md +1 -1
  12. data/docs/dsl/definition/result.md +1 -0
  13. data/docs/dsl/definition/run_remote.md +12 -6
  14. data/docs/dsl/definition/target.md +9 -10
  15. data/docs/install/README.md +13 -18
  16. data/docs/install/vagrant_docker.md +1 -1
  17. data/docs/learn/README.md +8 -8
  18. data/docs/learn/example-01-target.md +25 -25
  19. data/docs/learn/example-02-config.md +38 -49
  20. data/docs/learn/example-03-remote-hosts.md +22 -22
  21. data/docs/learn/{example-11-first-test.md → example-04-new-test.md} +23 -24
  22. data/docs/learn/{example-04-use.md → example-05-use.md} +6 -6
  23. data/docs/learn/{example-05-debug.md → example-06-debug.md} +8 -8
  24. data/docs/learn/{example-06-log.md → example-07-log.md} +7 -7
  25. data/docs/learn/{example-07-readme.md → example-08-readme.md} +10 -10
  26. data/docs/learn/{example-08-preserve.md → example-09-preserve.md} +6 -6
  27. data/docs/videos.md +19 -0
  28. data/lib/teuton/application.rb +22 -3
  29. data/lib/teuton/case_manager/case/dsl/goto.rb +2 -2
  30. data/lib/teuton/case_manager/case/dsl/macro.rb +1 -0
  31. data/lib/teuton/case_manager/case/dsl/send.rb +2 -1
  32. data/lib/teuton/case_manager/case/play.rb +2 -0
  33. data/lib/teuton/case_manager/case/result/ext_compare.rb +16 -0
  34. data/lib/teuton/case_manager/case/result/result.rb +1 -1
  35. data/lib/teuton/case_manager/case/runner.rb +30 -4
  36. data/lib/teuton/case_manager/case_manager.rb +1 -1
  37. data/lib/teuton/case_manager/export_manager.rb +21 -11
  38. data/lib/teuton/case_manager/utils.rb +1 -1
  39. data/lib/teuton/{project/laboratory → check}/builtin.rb +0 -0
  40. data/lib/teuton/{project/laboratory → check}/dsl.rb +40 -28
  41. data/lib/teuton/{project/laboratory → check}/laboratory.rb +3 -8
  42. data/lib/teuton/{project/laboratory → check}/show.rb +53 -59
  43. data/lib/teuton/cli.rb +85 -14
  44. data/lib/teuton/{project/readme → readme}/dsl.rb +0 -0
  45. data/lib/teuton/{project/readme → readme}/lang.rb +1 -1
  46. data/lib/teuton/{project/readme → readme}/readme.rb +22 -18
  47. data/lib/teuton/report/formatter/array_formatter.rb +13 -1
  48. data/lib/teuton/report/formatter/base_formatter.rb +18 -5
  49. data/lib/teuton/{project/skeleton.rb → skeleton.rb} +7 -19
  50. data/lib/teuton/utils/configfile_reader.rb +121 -0
  51. data/lib/teuton/{project → utils}/name_file_finder.rb +46 -26
  52. data/lib/teuton/version.rb +8 -0
  53. data/lib/teuton.rb +39 -32
  54. metadata +107 -65
  55. data/lib/teuton/cli/check.rb +0 -38
  56. data/lib/teuton/cli/main.rb +0 -6
  57. data/lib/teuton/cli/play.rb +0 -38
  58. data/lib/teuton/cli/readme.rb +0 -26
  59. data/lib/teuton/cli/version.rb +0 -12
  60. data/lib/teuton/files/gitignore +0 -2
  61. data/lib/teuton/project/configfile_reader.rb +0 -49
  62. data/lib/teuton/project/project.rb +0 -80
@@ -1,49 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'yaml'
4
- require 'json/pure'
5
-
6
- # Functions that read data from ConfigFile using formats YAML and JSON
7
- # * read
8
- # * read_yaml
9
- # * read_json
10
- module ConfigFileReader
11
- def self.read(filepath)
12
- unless File.exist?(filepath)
13
- data = {}
14
- data[:global] = {}
15
- data[:alias] = {}
16
- data[:cases] = [{ tt_members: 'anonymous' }]
17
- return data
18
- end
19
- return read_yaml(filepath) if File.extname(filepath) == '.yaml'
20
-
21
- return read_json(filepath) if File.extname(filepath) == '.json'
22
-
23
- raise "[ERROR] ConfigFileReader: #{filepath}"
24
- end
25
-
26
- def self.read_yaml(filepath)
27
- begin
28
- data = YAML.load(File.open(filepath))
29
- rescue StandardError => e
30
- puts "\n" + ('=' * 80)
31
- puts "[ERROR] ConfigFileReader#read <#{filepath}>"
32
- puts ' I suggest to revise file format!'
33
- puts " #{e.message}\n" + ('=' * 80)
34
- raise "[ERROR] ConfigFileReader <#{e}>"
35
- end
36
- data[:global] = data[:global] || {}
37
- data[:alias] = data[:alias] || {}
38
- data[:cases] = data[:cases] || []
39
- data
40
- end
41
-
42
- def self.read_json(filepath)
43
- data = JSON.parse(File.read(filepath), symbolize_names: true)
44
- data[:global] = data[:global] || {}
45
- data[:alias] = data[:alias] || {}
46
- data[:cases] = data[:cases] || []
47
- data
48
- end
49
- end
@@ -1,80 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative '../application'
4
- require_relative 'name_file_finder'
5
-
6
- # Project functions invoked by CLI project tool
7
- # * test
8
- # * play
9
- # * process_input_case_option
10
- # * readme
11
- # * require_dsl_and_script
12
- module Project ##
13
- ##
14
- # Check teuton test syntax
15
- # @param projectpath (String) Path to teuton test
16
- # @param options (Array) Array of input options
17
- def self.check(projectpath, options)
18
- Application.instance.options.merge! options
19
- NameFileFinder.find_filenames_for(projectpath)
20
- NameFileFinder.puts_input_info_on_screen
21
- require_dsl_and_script('laboratory/laboratory') # Define DSL keywords
22
-
23
- app = Application.instance
24
- lab = Laboratory.new(app.script_path, app.config_path)
25
- # lab.show_requests if options[:r]
26
- lab.show_config if options[:c]
27
- lab.show_dsl unless options[:r] || options[:c]
28
- end
29
-
30
- ##
31
- # Run test
32
- # @param projectpath (String) Path to teuton test
33
- # @param options (Array) Array of input options
34
- def self.play(projectpath, options)
35
- Application.instance.options.merge! options
36
- process_input_options
37
- NameFileFinder.find_filenames_for(projectpath)
38
- NameFileFinder.puts_input_info_on_screen
39
- require_dsl_and_script('../case_manager/dsl') # Define DSL keywords
40
- end
41
-
42
- ##
43
- # Preprocess input options:
44
- # * Convert input case options String to an Array of integers
45
- # * Read color input option
46
- def self.process_input_options
47
- options = Application.instance.options
48
- options['color'] = true if options['color'].nil?
49
- Rainbow.enabled = options['color']
50
- return if options['case'].nil?
51
-
52
- a = options['case'].split(',')
53
- options['case'] = a.collect!(&:to_i)
54
- end
55
-
56
- ##
57
- # Create Readme file for a test
58
- # @param projectpath (String) Path to teuton test
59
- # @param options (Array) Array of input options
60
- def self.readme(projectpath, options)
61
- Application.instance.options.merge! options
62
- NameFileFinder.find_filenames_for(projectpath)
63
- require_dsl_and_script('readme/readme') # Define DSL keywords
64
-
65
- app = Application.instance
66
- readme = Readme.new(app.script_path, app.config_path)
67
- readme.show
68
- end
69
-
70
- def self.require_dsl_and_script(dslpath)
71
- app = Application.instance
72
- require_relative dslpath
73
- begin
74
- require_relative app.script_path
75
- rescue SyntaxError => e
76
- puts e.to_s
77
- puts Rainbow.new("[ERROR] SyntaxError into file #{app.script_path}").red
78
- end
79
- end
80
- end