sus 0.1.0 → 0.1.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dccbd079d0154903705918ed6d572de0f4a4079d2f4d5fd352e8cef0a9694a05
4
- data.tar.gz: 400eb2d789f2ff17209f289ad2f0e0d89486cd200e127e80f304fdb2e29c87f3
3
+ metadata.gz: f1df466d84d494d20a673f838f968b1d89456928dfea7a9ca7b72f50d3675345
4
+ data.tar.gz: 0277ccbe0791b8c0e78e0301a9bd73704eb46177754710d516baf6e77a7fa125
5
5
  SHA512:
6
- metadata.gz: f7c3cb03088ccd432b27101ab654032c713bbecff85b18e6bdadf7315361a3be306778bbda012ee04e69f325f989ec093809b13d070f20b5ae8818e7deccdb7a
7
- data.tar.gz: b8519c677f9d0731bc5c5a7bbb0dd71ee302b9d5a68b115e1ec6feeb4baf6d841e76a0487b71a9ad0f78ae9a35e30370a88d26a937d1cb0c7d0a617ad77e123b
6
+ metadata.gz: 16b55cb766a2ab965d0e5cf136d448b3bfb2978d72761ef39e78379f40cd947769c26208e831ed8ea6432e6d902e01a9e1b69b391074758f7341b921d2b66e12
7
+ data.tar.gz: c1e44c881562220f893067320d07f0a71f2906b8867bc6162a5618b534bbcc571cf693ead8152e854595141f6d7d93d4cb242c10b97de643f92be8bdc153b43f
data/lib/sus/it.rb CHANGED
@@ -26,7 +26,6 @@ module Sus
26
26
  end
27
27
 
28
28
  def call(assertions)
29
- sleep rand
30
29
  assertions.nested(self, isolated: true) do |assertions|
31
30
  instance = self.new(assertions)
32
31
 
data/lib/sus/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Sus
4
- VERSION = "0.1.0"
4
+ VERSION = "0.1.1"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
@@ -9,21 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
  date: 2021-12-05 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: samovar
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '2.0'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '2.0'
12
+ dependencies: []
27
13
  description:
28
14
  email:
29
15
  executables:
@@ -37,10 +23,6 @@ files:
37
23
  - lib/sus/assertions.rb
38
24
  - lib/sus/base.rb
39
25
  - lib/sus/be.rb
40
- - lib/sus/command/list.rb
41
- - lib/sus/command/run.rb
42
- - lib/sus/command/sequential.rb
43
- - lib/sus/command/top.rb
44
26
  - lib/sus/context.rb
45
27
  - lib/sus/describe.rb
46
28
  - lib/sus/expect.rb
@@ -1,36 +0,0 @@
1
- require 'etc'
2
- require 'samovar'
3
-
4
- module Sus
5
- module Command
6
- class List < Samovar::Command
7
- self.description = "List all available tests."
8
-
9
- many :paths
10
-
11
- def prepare(registry)
12
- if paths&.any?
13
- paths.each do |path|
14
- registry.load(path)
15
- end
16
- else
17
- Dir.glob("test/**/*.rb").each do |path|
18
- registry.load(path)
19
- end
20
- end
21
- end
22
-
23
- def call
24
- registry = Sus::Registry.new
25
- output = Sus::Output.default
26
-
27
- prepare(registry)
28
-
29
- registry.each do |child|
30
- child.print(output)
31
- output.puts
32
- end
33
- end
34
- end
35
- end
36
- end
@@ -1,104 +0,0 @@
1
- require 'etc'
2
- require 'samovar'
3
-
4
- module Sus
5
- module Command
6
- class Run < Samovar::Command
7
- self.description = "Run one or more tests."
8
-
9
- options do
10
- option '-c/--count <n>', "The number of threads to use for running tests.", type: Integer, default: Etc.nprocessors
11
- option '-r/--require <path>', ""
12
- end
13
-
14
- many :paths
15
-
16
- def prepare(registry)
17
- if paths&.any?
18
- paths.each do |path|
19
- registry.load(path)
20
- end
21
- else
22
- Dir.glob("test/**/*.rb").each do |path|
23
- registry.load(path)
24
- end
25
- end
26
- end
27
-
28
- Result = Struct.new(:job, :assertions)
29
-
30
- def call
31
- registry = Sus::Registry.new
32
- jobs = Thread::Queue.new
33
- results = Thread::Queue.new
34
-
35
- output = Sus::Output.default
36
- guard = Thread::Mutex.new
37
- progress = Sus::Progress.new(output)
38
- count = @options[:count]
39
-
40
- loader = Thread.new do
41
- prepare(registry)
42
-
43
- registry.each do |child|
44
- guard.synchronize{progress.expand}
45
- jobs << child
46
- end
47
-
48
- jobs.close
49
- end
50
-
51
- aggregation = Thread.new do
52
- assertions = Sus::Assertions.new(output: output.buffered)
53
- first = true
54
-
55
- while result = results.pop
56
- guard.synchronize{progress.increment}
57
-
58
- if result.assertions.failed?
59
- if first
60
- first = false
61
- else
62
- assertions.output.puts
63
- end
64
-
65
- result.assertions.output.append(assertions.output)
66
- end
67
-
68
- assertions.add(result.assertions)
69
- guard.synchronize{progress.report(count, assertions, :busy)}
70
- end
71
-
72
- guard.synchronize{progress.clear}
73
-
74
- assertions.output.puts unless first
75
- assertions.output.append(output)
76
-
77
- assertions.print(output)
78
- output.puts
79
- end
80
-
81
- workers = count.times.map do |index|
82
- Thread.new do
83
- while job = jobs.pop
84
- guard.synchronize{progress.report(index, job, :busy)}
85
-
86
- assertions = Sus::Assertions.new(output: output.buffered)
87
- job.call(assertions)
88
- results << Result.new(job, assertions)
89
-
90
- guard.synchronize{progress.report(index, "idle", :free)}
91
- end
92
- end
93
- end
94
-
95
- loader.join
96
-
97
- workers.each(&:join)
98
- results.close
99
-
100
- aggregation.join
101
- end
102
- end
103
- end
104
- end
@@ -1,35 +0,0 @@
1
- require 'etc'
2
- require 'samovar'
3
-
4
- module Sus
5
- module Command
6
- class Sequential < Samovar::Command
7
- self.description = "Run one or more tests."
8
-
9
- many :paths
10
-
11
- def prepare(registry)
12
- if paths&.any?
13
- paths.each do |path|
14
- registry.load(path)
15
- end
16
- else
17
- Dir.glob("test/**/*.rb").each do |path|
18
- registry.load(path)
19
- end
20
- end
21
- end
22
-
23
- Result = Struct.new(:job, :assertions)
24
-
25
- def call
26
- registry = Sus::Registry.new
27
- output = Sus::Output.default
28
-
29
- prepare(registry)
30
-
31
- registry.call
32
- end
33
- end
34
- end
35
- end
@@ -1,26 +0,0 @@
1
- require 'samovar'
2
- require_relative 'run'
3
- require_relative 'sequential'
4
- require_relative 'list'
5
-
6
- module Sus
7
- module Command
8
- class Top < Samovar::Command
9
- self.description = "Test your code."
10
-
11
- nested :command, {
12
- 'run' => Run,
13
- 'sequential' => Sequential,
14
- 'list' => List,
15
- }, default: 'run'
16
-
17
- def call
18
- if command = self.command
19
- command.call
20
- else
21
- self.print_usage
22
- end
23
- end
24
- end
25
- end
26
- end