ftest 0.9.1 → 0.9.2
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 +4 -4
- data/lib/ftest.rb +7 -4
- data/lib/ftest/cli.rb +11 -1
- data/lib/ftest/colored_logger.rb +62 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7bfcd5052fd652390aed5654ef14e7cc10e4c395
|
4
|
+
data.tar.gz: 66de21d81e67dc06e70bbbe5f740c9f190b87092
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4daaea4200efd5fd14457617934d1c826cb153a57c03eeea1cdd0a0bfebabb0b717dee76d84f9ab9bb61da69bff911670e25d6908a54a02b7df67d8922fc1c85
|
7
|
+
data.tar.gz: e100fb037ddb93e2db9e7ff47c2636e28329536443d1eff2c906b02b2c32f30186ef59fb37ac209e1e8d33a1672d7b6248eda57658ca3e5aefe593527267c259
|
data/lib/ftest.rb
CHANGED
@@ -23,10 +23,13 @@ module FTest
|
|
23
23
|
Config.logger
|
24
24
|
end
|
25
25
|
|
26
|
-
# Describe can help break up a larger test script
|
27
|
-
# immediately; this is
|
28
|
-
|
29
|
-
|
26
|
+
# Describe, context, it, and specify can help break up a larger test script
|
27
|
+
# into chunks. Blocks are run # immediately; this is cosmetic enhancement
|
28
|
+
# that also enables some degree of compatibility with other frameworks.
|
29
|
+
%i(context describe it specify).each do |method_name|
|
30
|
+
define_method method_name do |msg, &blk|
|
31
|
+
blk.() if blk
|
32
|
+
end
|
30
33
|
end
|
31
34
|
|
32
35
|
def self.included target
|
data/lib/ftest/cli.rb
CHANGED
@@ -17,7 +17,7 @@ module FTest
|
|
17
17
|
def call
|
18
18
|
@options = ArgvParser.(@argv)
|
19
19
|
setup_config
|
20
|
-
Runner.(
|
20
|
+
Runner.(filter_files) or exit 1
|
21
21
|
end
|
22
22
|
|
23
23
|
def setup_config
|
@@ -35,6 +35,12 @@ module FTest
|
|
35
35
|
logger
|
36
36
|
end
|
37
37
|
|
38
|
+
def filter_files
|
39
|
+
resolve_files.reject do |path|
|
40
|
+
path.end_with? "init.rb"
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
38
44
|
def resolve_files
|
39
45
|
options.paths.flat_map do |path|
|
40
46
|
if path.end_with? ".rb"
|
@@ -153,6 +159,10 @@ If no PATH(s) are specified, ./tests is assumed
|
|
153
159
|
exit 0
|
154
160
|
end
|
155
161
|
|
162
|
+
opts.on "-m", "--monkeypatch", "Turn on monkeypatching (equivalent to `require \"ftest/script\"'" do
|
163
|
+
require "ftest/script"
|
164
|
+
end
|
165
|
+
|
156
166
|
opts.on "-n", "--num=COUNT", "Max number of sub processes to run concurrently" do |num|
|
157
167
|
@options.child_count = num
|
158
168
|
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
module FTest
|
2
|
+
class ColoredLogger
|
3
|
+
ANSI_COLORS = %i(black red green yellow blue magenta cyan white)
|
4
|
+
|
5
|
+
DEFAULT_PALETTE = {
|
6
|
+
:unknown => -> msg { bg(:blue, :bright, fg(:white, :bright, msg)) },
|
7
|
+
:fatal => -> msg { bg(:red, :bright, fg(:white, :bright, msg)) },
|
8
|
+
:error => -> msg { fg(:red, :bright, msg) },
|
9
|
+
:warn => -> msg { fg(:yellow, :bright, msg) },
|
10
|
+
:info => -> msg { fg(:default, :normal, msg) },
|
11
|
+
:debug => -> msg { fg(:cyan, :bright, msg) },
|
12
|
+
}
|
13
|
+
|
14
|
+
attr_reader :palette
|
15
|
+
|
16
|
+
def initialize io, palette = DEFAULT_PALETTE
|
17
|
+
@logger = Logger.new io
|
18
|
+
@palette = palette
|
19
|
+
end
|
20
|
+
|
21
|
+
%i(level= progname=).each do |method_name|
|
22
|
+
define_method method_name do |*args, &block|
|
23
|
+
@logger.public_send method_name, *args, &block
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
%i(unknown fatal error warn info debug).each do |log_level|
|
28
|
+
define_method log_level do |msg_or_progname = nil, &orig_block|
|
29
|
+
colored_msg = format log_level, msg_or_progname
|
30
|
+
|
31
|
+
if orig_block
|
32
|
+
progname = colored_msg
|
33
|
+
block = -> do format log_level, orig_block.() end
|
34
|
+
else
|
35
|
+
block = -> do colored_msg end
|
36
|
+
end
|
37
|
+
|
38
|
+
@logger.public_send log_level, progname, &block
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def format log_level, msg
|
43
|
+
formatter = palette.fetch log_level
|
44
|
+
instance_exec msg, &formatter
|
45
|
+
end
|
46
|
+
|
47
|
+
def fg *args
|
48
|
+
col :fg, *args
|
49
|
+
end
|
50
|
+
|
51
|
+
def bg *args
|
52
|
+
col :bg, *args
|
53
|
+
end
|
54
|
+
|
55
|
+
def col fgbg, color_code, intensity_code, str
|
56
|
+
color_num = ANSI_COLORS.index color_code
|
57
|
+
intensity_num = { :normal => 0, :bright => 1 }.fetch intensity_code
|
58
|
+
fgbg_num = { :fg => 3, :bg => 4 }.fetch fgbg
|
59
|
+
"\e[#{fgbg_num}#{color_num};#{intensity_num}m#{str}\e[0m"
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ftest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nathan Ladd
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-09-
|
11
|
+
date: 2015-09-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: logger-logging
|
@@ -42,6 +42,7 @@ files:
|
|
42
42
|
- lib/ftest/assert/syntax.rb
|
43
43
|
- lib/ftest/backtrace_filter.rb
|
44
44
|
- lib/ftest/cli.rb
|
45
|
+
- lib/ftest/colored_logger.rb
|
45
46
|
- lib/ftest/config.rb
|
46
47
|
- lib/ftest/runner.rb
|
47
48
|
- lib/ftest/script.rb
|