test_bench-session 2.0.0.0 → 2.1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/lib/test_bench/session/controls/comment.rb +93 -4
  3. data/lib/test_bench/session/controls/detail.rb +79 -4
  4. data/lib/test_bench/session/controls/event.rb +7 -0
  5. data/lib/test_bench/session/controls/events/commented.rb +91 -10
  6. data/lib/test_bench/session/controls/events/context_finished.rb +49 -11
  7. data/lib/test_bench/session/controls/events/context_skipped.rb +26 -8
  8. data/lib/test_bench/session/controls/events/context_started.rb +44 -9
  9. data/lib/test_bench/session/controls/events/detailed.rb +91 -10
  10. data/lib/test_bench/session/controls/{capture_sink/event.rb → events/event_data.rb} +2 -2
  11. data/lib/test_bench/session/controls/events/failed.rb +27 -15
  12. data/lib/test_bench/session/controls/events/fixture_finished.rb +32 -11
  13. data/lib/test_bench/session/controls/events/fixture_started.rb +26 -8
  14. data/lib/test_bench/session/controls/events/test_finished.rb +49 -11
  15. data/lib/test_bench/session/controls/events/test_skipped.rb +26 -8
  16. data/lib/test_bench/session/controls/events/test_started.rb +44 -9
  17. data/lib/test_bench/session/controls/events.rb +15 -9
  18. data/lib/test_bench/session/controls/exception.rb +28 -10
  19. data/lib/test_bench/session/controls/failure.rb +5 -16
  20. data/lib/test_bench/session/controls/fixture.rb +7 -4
  21. data/lib/test_bench/session/controls/output/detail.rb +29 -0
  22. data/lib/test_bench/session/controls/output.rb +55 -0
  23. data/lib/test_bench/session/controls/random.rb +1 -1
  24. data/lib/test_bench/session/controls/result.rb +15 -4
  25. data/lib/test_bench/session/controls/{capture_sink → substitute}/path.rb +6 -3
  26. data/lib/test_bench/session/controls/title.rb +24 -12
  27. data/lib/test_bench/session/controls.rb +12 -12
  28. data/lib/test_bench/session/events.rb +7 -14
  29. data/lib/test_bench/session/output/get.rb +27 -0
  30. data/lib/test_bench/session/output/writer/buffer/interactive/viewport.rb +164 -0
  31. data/lib/test_bench/session/output/writer/buffer/interactive.rb +139 -0
  32. data/lib/test_bench/session/output/writer/buffer.rb +27 -0
  33. data/lib/test_bench/session/output/writer/defaults.rb +17 -0
  34. data/lib/test_bench/session/output/writer/substitute.rb +17 -0
  35. data/lib/test_bench/session/output/writer.rb +95 -0
  36. data/lib/test_bench/session/output.rb +375 -0
  37. data/lib/test_bench/session/projection.rb +28 -0
  38. data/lib/test_bench/session/session.rb +51 -65
  39. data/lib/test_bench/session/store.rb +59 -0
  40. data/lib/test_bench/session/substitute/path.rb +63 -0
  41. data/lib/test_bench/session/substitute/sink.rb +104 -0
  42. data/lib/test_bench/session/substitute.rb +17 -34
  43. data/lib/test_bench/session.rb +16 -5
  44. metadata +22 -17
  45. data/lib/test_bench/session/controls/capture_sink/record.rb +0 -19
  46. data/lib/test_bench/session/controls/events/aborted.rb +0 -29
  47. data/lib/test_bench/session/controls/events/file_finished.rb +0 -32
  48. data/lib/test_bench/session/controls/events/file_started.rb +0 -29
  49. data/lib/test_bench/session/controls/events/finished.rb +0 -32
  50. data/lib/test_bench/session/controls/events/started.rb +0 -29
  51. data/lib/test_bench/session/controls/file.rb +0 -58
  52. data/lib/test_bench/session/telemetry/capture_sink/path.rb +0 -65
  53. data/lib/test_bench/session/telemetry/capture_sink/record.rb +0 -39
  54. data/lib/test_bench/session/telemetry/capture_sink.rb +0 -63
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f3250cb8c227d32f9895c3b6bc832177f1a9dff367ba88c92d575e662e785c39
4
- data.tar.gz: 5a6ed10dd0ea4aaa956e7bd13b521d7a88bf1ca87b6183270a6535d520de4a0d
3
+ metadata.gz: eff1f946f4af72a45cf8a20f51c0500ea4633ac22ac17da89ee1da243d7ce9b7
4
+ data.tar.gz: bd1faca42a45e762480171d1bce77c2a58cacb32007d04cc1bebf8c64a66412d
5
5
  SHA512:
6
- metadata.gz: 4325057fc2cd623f68fc45db2e4dbdfed821bd6707059d800188c07223c758d6441646e09d620312d8b9ac6b0be1c43c5f15f592db0f490f0b1ba2c1d399ff36
7
- data.tar.gz: 9e35be1361eca6411038ff4ed8486fe18a67fd3a3ff1eff378c271ca2dacb57ef76d21ba939d75a569afd0b9f388f941787dd80352f801aa16b2a9fe2bb240bb
6
+ metadata.gz: f732ea82d07763d25a48eaf05e8e5287b785a61a357955cdd09108ac5101c7adf34379c6121f40b423deaa8caf1cb798392084d01da2e3b3d10b1ae6b5d55832
7
+ data.tar.gz: d0e36f45c29d0d38c7844d24e5f06428f7254521944e1c1c5787fc91bb243b6a73d0366960a63241cd48c2afd9f02703ddbf8891193b038f11d097c9eab37889
@@ -3,12 +3,101 @@ module TestBench
3
3
  module Controls
4
4
  module Comment
5
5
  module Text
6
- def self.example(suffix=nil)
7
- suffix = " #{suffix}" if not suffix.nil?
6
+ def self.example
7
+ "Some comment"
8
+ end
9
+
10
+ def self.random
11
+ Random.example
12
+ end
13
+
14
+ module Random
15
+ def self.example(suffix=nil, text: nil)
16
+ suffix ||= self.suffix
17
+ text ||= Text.example
18
+
19
+ "#{text} #{suffix}"
20
+ end
21
+
22
+ def self.suffix
23
+ Controls::Random.string
24
+ end
25
+ end
26
+
27
+ module MultipleLines
28
+ def self.example(lines=nil)
29
+ lines ||= self.lines
30
+
31
+ text = String.new
32
+
33
+ lines.map do |line|
34
+ text << line
35
+ text << "\n"
36
+ end
37
+
38
+ text
39
+ end
40
+
41
+ def self.random
42
+ Random.example
43
+ end
44
+
45
+ def self.lines
46
+ [
47
+ "Some comment",
48
+ "Some other comment",
49
+ "Yet another comment"
50
+ ]
51
+ end
52
+
53
+ module Random
54
+ def self.example(suffix=nil)
55
+ suffix ||= Text::Random.suffix
56
+
57
+ lines = MultipleLines.lines.map do |line|
58
+ Text::Random.example(suffix, text: line)
59
+ end
60
+
61
+ MultipleLines.example(lines)
62
+ end
63
+ end
64
+ end
65
+ end
66
+
67
+ module Heading
68
+ def self.example(text: nil)
69
+ text ||= self.text
70
+
71
+ "#{text}:"
72
+ end
73
+
74
+ def self.random
75
+ Random.example
76
+ end
77
+
78
+ def self.text
79
+ "Some Comment Heading"
80
+ end
81
+
82
+ module Random
83
+ def self.example(suffix=nil)
84
+ suffix ||= Controls::Random.string
85
+
86
+ text = "#{Heading.text} #{suffix}"
87
+
88
+ Heading.example(text:)
89
+ end
90
+ end
91
+ end
92
+
93
+ module Quote
94
+ def self.example
95
+ true
96
+ end
8
97
 
9
- "Some comment#{suffix}"
98
+ def self.random
99
+ Random.boolean
10
100
  end
11
- def self.random = example(Random.string)
12
101
  end
13
102
  end
14
103
  end
@@ -3,12 +3,87 @@ module TestBench
3
3
  module Controls
4
4
  module Detail
5
5
  module Text
6
- def self.example(suffix=nil)
7
- suffix = " #{suffix}" if not suffix.nil?
6
+ def self.example
7
+ "Some detail"
8
+ end
9
+
10
+ def self.random
11
+ Random.example
12
+ end
13
+
14
+ module Random
15
+ def self.example(suffix=nil, text: nil)
16
+ text ||= Text.example
17
+
18
+ Comment::Text::Random.example(suffix, text:)
19
+ end
20
+ end
21
+
22
+ module MultipleLines
23
+ def self.example(lines=nil)
24
+ lines ||= self.lines
25
+
26
+ Comment::Text::MultipleLines.example(lines)
27
+ end
28
+
29
+ def self.random
30
+ Random.example
31
+ end
32
+
33
+ def self.lines
34
+ [
35
+ "Some detail",
36
+ "Some other detail",
37
+ "Yet another detail"
38
+ ]
39
+ end
40
+
41
+ module Random
42
+ def self.example(suffix=nil)
43
+ suffix ||= Comment::Text::Random.suffix
44
+
45
+ lines = MultipleLines.lines.map do |line|
46
+ Text::Random.example(suffix, text: line)
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
52
+
53
+ module Heading
54
+ def self.example(text: nil)
55
+ text ||= self.text
56
+
57
+ "#{text}:"
58
+ end
59
+
60
+ def self.random
61
+ Random.example
62
+ end
63
+
64
+ def self.text
65
+ "Some Detail Heading"
66
+ end
67
+
68
+ module Random
69
+ def self.example(suffix=nil)
70
+ suffix ||= Controls::Random.string
71
+
72
+ text = "#{Heading.text} #{suffix}"
73
+
74
+ Heading.example(text:)
75
+ end
76
+ end
77
+ end
78
+
79
+ module Quote
80
+ def self.example
81
+ true
82
+ end
8
83
 
9
- "Some detail#{suffix}"
84
+ def self.random
85
+ Random.boolean
10
86
  end
11
- def self.random = example(Random.string)
12
87
  end
13
88
  end
14
89
  end
@@ -0,0 +1,7 @@
1
+ module TestBench
2
+ class Session
3
+ module Controls
4
+ Event = Telemetry::Controls::Event
5
+ end
6
+ end
7
+ end
@@ -3,25 +3,106 @@ module TestBench
3
3
  module Controls
4
4
  module Events
5
5
  module Commented
6
- def self.example(text: nil, process_id: nil, time: nil)
7
- text ||= self.text
6
+ extend EventData
7
+
8
+ def self.example(text: nil, quote: nil, heading: nil, process_id: nil, time: nil)
9
+ quote = self.quote if quote.nil?
8
10
  process_id ||= self.process_id
9
11
  time ||= self.time
10
12
 
11
- Session::Events::Commented.new(text, process_id, time)
13
+ if text == :none
14
+ text = nil
15
+ else
16
+ text ||= self.text
17
+ end
18
+
19
+ Session::Events::Commented.build(text, quote, heading, process_id:, time:)
12
20
  end
13
21
 
14
22
  def self.random
15
- text = Comment::Text.random
16
- process_id = ProcessID.random
17
- time = Time.random
23
+ Random.example
24
+ end
25
+
26
+ def self.text
27
+ Comment::Text.example
28
+ end
29
+
30
+ def self.quote
31
+ false
32
+ end
18
33
 
19
- example(text:, process_id:, time:)
34
+ def self.process_id
35
+ ProcessID.example
20
36
  end
21
37
 
22
- def self.text = Comment::Text.example
23
- def self.process_id = ProcessID.example
24
- def self.time = Time.example
38
+ def self.time
39
+ Time.example
40
+ end
41
+
42
+ module Random
43
+ extend EventData
44
+
45
+ def self.example(text: nil, quote: nil, heading: nil, process_id: nil, time: nil)
46
+ text ||= Comment::Text.random
47
+ quote ||= Comment::Quote.random
48
+ process_id ||= ProcessID.random
49
+ time ||= Time.random
50
+
51
+ Commented.example(text:, quote:, heading:, process_id:, time:)
52
+ end
53
+ end
54
+
55
+ module MultipleLines
56
+ extend EventData
57
+
58
+ def self.example(omit_heading: nil, heading: nil, **attributes)
59
+ if omit_heading.nil?
60
+ omit_heading = !heading.nil?
61
+ end
62
+
63
+ if not omit_heading
64
+ heading ||= self.heading
65
+ end
66
+
67
+ Commented.example(text:, quote:, heading:, **attributes)
68
+ end
69
+
70
+ def self.random
71
+ Random.example
72
+ end
73
+
74
+ def self.text
75
+ Comment::Text::MultipleLines.example
76
+ end
77
+
78
+ def self.quote
79
+ true
80
+ end
81
+
82
+ def self.heading
83
+ Comment::Heading.example
84
+ end
85
+
86
+ module Random
87
+ extend EventData
88
+
89
+ def self.example(omit_heading: nil, heading: nil, **attributes)
90
+ if omit_heading.nil?
91
+ omit_heading = !heading.nil?
92
+ end
93
+
94
+ suffix = Controls::Random.string
95
+
96
+ if not omit_heading
97
+ heading = Comment::Heading::Random.example(suffix)
98
+ end
99
+
100
+ text = Comment::Text::MultipleLines::Random.example(suffix)
101
+
102
+ Commented::Random.example(text:, heading:, **attributes)
103
+ end
104
+ end
105
+ end
25
106
  end
26
107
  end
27
108
  end
@@ -3,28 +3,66 @@ module TestBench
3
3
  module Controls
4
4
  module Events
5
5
  module ContextFinished
6
+ extend EventData
7
+
6
8
  def self.example(title: nil, result: nil, process_id: nil, time: nil)
7
- title ||= self.title
8
9
  result = self.result if result.nil?
9
10
  process_id ||= self.process_id
10
11
  time ||= self.time
11
12
 
12
- Session::Events::ContextFinished.new(title, result, process_id, time)
13
+ if title == :none
14
+ title = nil
15
+ else
16
+ title ||= self.title
17
+ end
18
+
19
+ Session::Events::ContextFinished.build(title, result, process_id:, time:)
13
20
  end
14
21
 
15
22
  def self.random
16
- title = Title::Context.random
17
- result = Result.random
18
- process_id = ProcessID.random
19
- time = Time.random
23
+ Random.example
24
+ end
25
+
26
+ def self.title
27
+ Title::Context.example
28
+ end
29
+
30
+ def self.result
31
+ Result.example
32
+ end
33
+
34
+ def self.process_id
35
+ ProcessID.example
36
+ end
37
+
38
+ def self.time
39
+ Time.example
40
+ end
41
+
42
+ module Random
43
+ extend EventData
20
44
 
21
- example(title:, result:, process_id:, time:)
45
+ def self.example(title: nil, result: nil, process_id: nil, time: nil)
46
+ result ||= Result.random
47
+ process_id ||= ProcessID.random
48
+ time ||= Time.random
49
+ title ||= Title::Context.random
50
+
51
+ ContextFinished.example(title:, result:, process_id:, time:)
52
+ end
22
53
  end
23
54
 
24
- def self.title = Title::Context.example
25
- def self.result = Result.example
26
- def self.process_id = ProcessID.example
27
- def self.time = Time.example
55
+ module NoTitle
56
+ extend EventData
57
+
58
+ def self.example(**arguments)
59
+ ContextFinished.example(title: :none, **arguments)
60
+ end
61
+
62
+ def self.random
63
+ Random.example(title: :none)
64
+ end
65
+ end
28
66
  end
29
67
  end
30
68
  end
@@ -3,25 +3,43 @@ module TestBench
3
3
  module Controls
4
4
  module Events
5
5
  module ContextSkipped
6
+ extend EventData
7
+
6
8
  def self.example(title: nil, process_id: nil, time: nil)
7
9
  title ||= self.title
8
10
  process_id ||= self.process_id
9
11
  time ||= self.time
10
12
 
11
- Session::Events::ContextSkipped.new(title, process_id, time)
13
+ Session::Events::ContextSkipped.build(title, process_id:, time:)
12
14
  end
13
15
 
14
16
  def self.random
15
- title = Title::Context.random
16
- process_id = ProcessID.random
17
- time = Time.random
17
+ Random.example
18
+ end
18
19
 
19
- example(title:, process_id:, time:)
20
+ def self.title
21
+ Title::Context.example
20
22
  end
21
23
 
22
- def self.title = Title::Context.example
23
- def self.process_id = ProcessID.example
24
- def self.time = Time.example
24
+ def self.process_id
25
+ ProcessID.example
26
+ end
27
+
28
+ def self.time
29
+ Time.example
30
+ end
31
+
32
+ module Random
33
+ extend EventData
34
+
35
+ def self.example(title: nil, process_id: nil, time: nil)
36
+ process_id ||= ProcessID.random
37
+ time ||= Time.random
38
+ title ||= Title::Context.random
39
+
40
+ ContextSkipped.example(title:, process_id:, time:)
41
+ end
42
+ end
25
43
  end
26
44
  end
27
45
  end
@@ -3,25 +3,60 @@ module TestBench
3
3
  module Controls
4
4
  module Events
5
5
  module ContextStarted
6
+ extend EventData
7
+
6
8
  def self.example(title: nil, process_id: nil, time: nil)
7
- title ||= self.title
8
9
  process_id ||= self.process_id
9
10
  time ||= self.time
10
11
 
11
- Session::Events::ContextStarted.new(title, process_id, time)
12
+ if title == :none
13
+ title = nil
14
+ else
15
+ title ||= self.title
16
+ end
17
+
18
+ Session::Events::ContextStarted.build(title, process_id:, time:)
12
19
  end
13
20
 
14
21
  def self.random
15
- title = Title::Context.random
16
- process_id = ProcessID.random
17
- time = Time.random
22
+ Random.example
23
+ end
24
+
25
+ def self.title
26
+ Title::Context.example
27
+ end
28
+
29
+ def self.process_id
30
+ ProcessID.example
31
+ end
18
32
 
19
- example(title:, process_id:, time:)
33
+ def self.time
34
+ Time.example
20
35
  end
21
36
 
22
- def self.title = Title::Context.example
23
- def self.process_id = ProcessID.example
24
- def self.time = Time.example
37
+ module Random
38
+ extend EventData
39
+
40
+ def self.example(title: nil, process_id: nil, time: nil)
41
+ process_id ||= ProcessID.random
42
+ time ||= Time.random
43
+ title ||= Title::Context.random
44
+
45
+ ContextStarted.example(title:, process_id:, time:)
46
+ end
47
+ end
48
+
49
+ module NoTitle
50
+ extend EventData
51
+
52
+ def self.example(**arguments)
53
+ ContextStarted.example(title: :none, **arguments)
54
+ end
55
+
56
+ def self.random
57
+ Random.example(title: :none)
58
+ end
59
+ end
25
60
  end
26
61
  end
27
62
  end
@@ -3,25 +3,106 @@ module TestBench
3
3
  module Controls
4
4
  module Events
5
5
  module Detailed
6
- def self.example(text: nil, process_id: nil, time: nil)
7
- text ||= self.text
6
+ extend EventData
7
+
8
+ def self.example(text: nil, quote: nil, heading: nil, process_id: nil, time: nil)
9
+ quote = self.quote if quote.nil?
8
10
  process_id ||= self.process_id
9
11
  time ||= self.time
10
12
 
11
- Session::Events::Detailed.new(text, process_id, time)
13
+ if text == :none
14
+ text = nil
15
+ else
16
+ text ||= self.text
17
+ end
18
+
19
+ Session::Events::Detailed.build(text, quote, heading, process_id:, time:)
12
20
  end
13
21
 
14
22
  def self.random
15
- text = Detail::Text.random
16
- process_id = ProcessID.random
17
- time = Time.random
23
+ Random.example
24
+ end
25
+
26
+ def self.text
27
+ Detail::Text.example
28
+ end
29
+
30
+ def self.quote
31
+ false
32
+ end
18
33
 
19
- example(text:, process_id:, time:)
34
+ def self.process_id
35
+ ProcessID.example
20
36
  end
21
37
 
22
- def self.text = Detail::Text.example
23
- def self.process_id = ProcessID.example
24
- def self.time = Time.example
38
+ def self.time
39
+ Time.example
40
+ end
41
+
42
+ module Random
43
+ extend EventData
44
+
45
+ def self.example(text: nil, quote: nil, heading: nil, process_id: nil, time: nil)
46
+ text ||= Detail::Text.random
47
+ quote ||= Detail::Quote.random
48
+ process_id ||= ProcessID.random
49
+ time ||= Time.random
50
+
51
+ Detailed.example(text:, quote:, heading:, process_id:, time:)
52
+ end
53
+ end
54
+
55
+ module MultipleLines
56
+ extend EventData
57
+
58
+ def self.example(omit_heading: nil, heading: nil, **attributes)
59
+ if omit_heading.nil?
60
+ omit_heading = !heading.nil?
61
+ end
62
+
63
+ if not omit_heading
64
+ heading ||= self.heading
65
+ end
66
+
67
+ Detailed.example(text:, quote:, heading:, **attributes)
68
+ end
69
+
70
+ def self.random
71
+ Random.example
72
+ end
73
+
74
+ def self.text
75
+ Detail::Text::MultipleLines.example
76
+ end
77
+
78
+ def self.quote
79
+ true
80
+ end
81
+
82
+ def self.heading
83
+ Detail::Heading.example
84
+ end
85
+
86
+ module Random
87
+ extend EventData
88
+
89
+ def self.example(omit_heading: nil, heading: nil, **attributes)
90
+ if omit_heading.nil?
91
+ omit_heading = !heading.nil?
92
+ end
93
+
94
+ suffix = Controls::Random.string
95
+
96
+ if not omit_heading
97
+ heading = Detail::Heading::Random.example(suffix)
98
+ end
99
+
100
+ text = Detail::Text::MultipleLines::Random.example(suffix)
101
+
102
+ Detailed::Random.example(text:, heading:, **attributes)
103
+ end
104
+ end
105
+ end
25
106
  end
26
107
  end
27
108
  end
@@ -1,8 +1,8 @@
1
1
  module TestBench
2
2
  class Session
3
3
  module Controls
4
- module CaptureSink
5
- Event = TestBench::Telemetry::Controls::Event
4
+ module Events
5
+ EventData = Telemetry::Controls::Event::EventData
6
6
  end
7
7
  end
8
8
  end