test_bench-session 2.0.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +7 -0
  2. data/lib/test_bench/session/controls/capture_sink/event.rb +9 -0
  3. data/lib/test_bench/session/controls/capture_sink/path.rb +30 -0
  4. data/lib/test_bench/session/controls/capture_sink/record.rb +19 -0
  5. data/lib/test_bench/session/controls/comment.rb +16 -0
  6. data/lib/test_bench/session/controls/detail.rb +16 -0
  7. data/lib/test_bench/session/controls/events/aborted.rb +29 -0
  8. data/lib/test_bench/session/controls/events/commented.rb +29 -0
  9. data/lib/test_bench/session/controls/events/context_finished.rb +32 -0
  10. data/lib/test_bench/session/controls/events/context_skipped.rb +29 -0
  11. data/lib/test_bench/session/controls/events/context_started.rb +29 -0
  12. data/lib/test_bench/session/controls/events/detailed.rb +29 -0
  13. data/lib/test_bench/session/controls/events/failed.rb +35 -0
  14. data/lib/test_bench/session/controls/events/file_finished.rb +32 -0
  15. data/lib/test_bench/session/controls/events/file_started.rb +29 -0
  16. data/lib/test_bench/session/controls/events/finished.rb +32 -0
  17. data/lib/test_bench/session/controls/events/fixture_finished.rb +32 -0
  18. data/lib/test_bench/session/controls/events/fixture_started.rb +29 -0
  19. data/lib/test_bench/session/controls/events/started.rb +29 -0
  20. data/lib/test_bench/session/controls/events/test_finished.rb +32 -0
  21. data/lib/test_bench/session/controls/events/test_skipped.rb +29 -0
  22. data/lib/test_bench/session/controls/events/test_started.rb +29 -0
  23. data/lib/test_bench/session/controls/events.rb +27 -0
  24. data/lib/test_bench/session/controls/exception.rb +27 -0
  25. data/lib/test_bench/session/controls/failure.rb +30 -0
  26. data/lib/test_bench/session/controls/file.rb +58 -0
  27. data/lib/test_bench/session/controls/fixture.rb +16 -0
  28. data/lib/test_bench/session/controls/process_id.rb +7 -0
  29. data/lib/test_bench/session/controls/random.rb +7 -0
  30. data/lib/test_bench/session/controls/result.rb +12 -0
  31. data/lib/test_bench/session/controls/time.rb +7 -0
  32. data/lib/test_bench/session/controls/title.rb +27 -0
  33. data/lib/test_bench/session/controls.rb +36 -0
  34. data/lib/test_bench/session/events.rb +32 -0
  35. data/lib/test_bench/session/session.rb +232 -0
  36. data/lib/test_bench/session/substitute.rb +93 -0
  37. data/lib/test_bench/session/telemetry/capture_sink/path.rb +65 -0
  38. data/lib/test_bench/session/telemetry/capture_sink/record.rb +39 -0
  39. data/lib/test_bench/session/telemetry/capture_sink.rb +63 -0
  40. data/lib/test_bench/session.rb +11 -0
  41. metadata +109 -0
@@ -0,0 +1,63 @@
1
+ module TestBench
2
+ class Session
3
+ module Telemetry
4
+ class CaptureSink
5
+ include TestBench::Telemetry::Sink
6
+ include Events
7
+
8
+ def records
9
+ @records ||= []
10
+ end
11
+
12
+ def path
13
+ @path ||= Path.new
14
+ end
15
+ attr_writer :path
16
+
17
+ def self.configure(receiver, attr_name: nil)
18
+ attr_name ||= :capture_sink
19
+
20
+ instance = new
21
+ receiver.public_send(:"#{attr_name}=", instance)
22
+ end
23
+
24
+ def call(event)
25
+ case event
26
+ when TestStarted, ContextStarted
27
+ path.push(event.title)
28
+ when TestFinished, ContextFinished
29
+ path.pop(event.title)
30
+ end
31
+
32
+ record = Record.new(event)
33
+ path.copy(record)
34
+
35
+ case event
36
+ when TestFinished, ContextFinished
37
+ title = event.title
38
+ record.path.push(title)
39
+ when Commented, Detailed
40
+ comment_text = event.text
41
+ record.path.push(comment_text)
42
+ end
43
+
44
+ records.push(record)
45
+
46
+ record
47
+ end
48
+
49
+ def match_events(event_class, *path_segments)
50
+ compare_event_type = event_class.event_type
51
+
52
+ records = self.records.select do |record|
53
+ record.match?(*path_segments) do |event_type, *values|
54
+ event_type == compare_event_type
55
+ end
56
+ end
57
+
58
+ records.map(&:event)
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,11 @@
1
+ require 'test_bench/telemetry'
2
+
3
+ require 'test_bench/session/events'
4
+
5
+ require 'test_bench/session/session'
6
+
7
+ require 'test_bench/session/telemetry/capture_sink/path'
8
+ require 'test_bench/session/telemetry/capture_sink/record'
9
+ require 'test_bench/session/telemetry/capture_sink'
10
+
11
+ require 'test_bench/session/substitute'
metadata ADDED
@@ -0,0 +1,109 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: test_bench-session
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Nathan Ladd
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2022-11-10 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: test_bench-telemetry
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: test_bench-bootstrap
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description:
42
+ email: nathanladd+github@gmail.com
43
+ executables: []
44
+ extensions: []
45
+ extra_rdoc_files: []
46
+ files:
47
+ - lib/test_bench/session.rb
48
+ - lib/test_bench/session/controls.rb
49
+ - lib/test_bench/session/controls/capture_sink/event.rb
50
+ - lib/test_bench/session/controls/capture_sink/path.rb
51
+ - lib/test_bench/session/controls/capture_sink/record.rb
52
+ - lib/test_bench/session/controls/comment.rb
53
+ - lib/test_bench/session/controls/detail.rb
54
+ - lib/test_bench/session/controls/events.rb
55
+ - lib/test_bench/session/controls/events/aborted.rb
56
+ - lib/test_bench/session/controls/events/commented.rb
57
+ - lib/test_bench/session/controls/events/context_finished.rb
58
+ - lib/test_bench/session/controls/events/context_skipped.rb
59
+ - lib/test_bench/session/controls/events/context_started.rb
60
+ - lib/test_bench/session/controls/events/detailed.rb
61
+ - lib/test_bench/session/controls/events/failed.rb
62
+ - lib/test_bench/session/controls/events/file_finished.rb
63
+ - lib/test_bench/session/controls/events/file_started.rb
64
+ - lib/test_bench/session/controls/events/finished.rb
65
+ - lib/test_bench/session/controls/events/fixture_finished.rb
66
+ - lib/test_bench/session/controls/events/fixture_started.rb
67
+ - lib/test_bench/session/controls/events/started.rb
68
+ - lib/test_bench/session/controls/events/test_finished.rb
69
+ - lib/test_bench/session/controls/events/test_skipped.rb
70
+ - lib/test_bench/session/controls/events/test_started.rb
71
+ - lib/test_bench/session/controls/exception.rb
72
+ - lib/test_bench/session/controls/failure.rb
73
+ - lib/test_bench/session/controls/file.rb
74
+ - lib/test_bench/session/controls/fixture.rb
75
+ - lib/test_bench/session/controls/process_id.rb
76
+ - lib/test_bench/session/controls/random.rb
77
+ - lib/test_bench/session/controls/result.rb
78
+ - lib/test_bench/session/controls/time.rb
79
+ - lib/test_bench/session/controls/title.rb
80
+ - lib/test_bench/session/events.rb
81
+ - lib/test_bench/session/session.rb
82
+ - lib/test_bench/session/substitute.rb
83
+ - lib/test_bench/session/telemetry/capture_sink.rb
84
+ - lib/test_bench/session/telemetry/capture_sink/path.rb
85
+ - lib/test_bench/session/telemetry/capture_sink/record.rb
86
+ homepage: https://github.com/test-bench/test-bench-session
87
+ licenses:
88
+ - MIT
89
+ metadata: {}
90
+ post_install_message:
91
+ rdoc_options: []
92
+ require_paths:
93
+ - lib
94
+ required_ruby_version: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ required_rubygems_version: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ requirements: []
105
+ rubygems_version: 3.3.23
106
+ signing_key:
107
+ specification_version: 4
108
+ summary: Test session for TestBench
109
+ test_files: []