test_bench-session 2.0.0.0 → 2.1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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