unipept 0.7.1 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +26 -0
- data/.travis.yml +7 -0
- data/Gemfile +8 -10
- data/Gemfile.lock +35 -21
- data/README.md +6 -4
- data/Rakefile +11 -10
- data/VERSION +1 -1
- data/bin/peptfilter +2 -44
- data/bin/prot2pept +4 -49
- data/bin/unipept +2 -197
- data/bin/uniprot +4 -53
- data/lib/batch_iterator.rb +73 -0
- data/lib/batch_order.rb +20 -0
- data/lib/commands/peptfilter.rb +118 -0
- data/lib/commands/prot2pept.rb +61 -0
- data/lib/commands/unipept/api_runner.rb +199 -0
- data/lib/commands/unipept/config.rb +29 -0
- data/lib/commands/unipept/pept2lca.rb +12 -0
- data/lib/commands/unipept/pept2prot.rb +13 -0
- data/lib/{unipept/commands → commands/unipept}/pept2taxa.rb +7 -0
- data/lib/commands/unipept/taxa2lca.rb +18 -0
- data/lib/{unipept/commands → commands/unipept}/taxonomy.rb +3 -0
- data/lib/commands/unipept.rb +226 -0
- data/lib/commands/uniprot.rb +69 -0
- data/lib/commands.rb +10 -0
- data/lib/configuration.rb +45 -0
- data/lib/formatters.rb +252 -0
- data/lib/version.rb +3 -0
- data/test/commands/test_peptfilter.rb +170 -0
- data/test/commands/test_prot2pept.rb +82 -0
- data/test/commands/test_unipept.rb +37 -0
- data/test/commands/test_uniprot.rb +136 -0
- data/test/commands/unipept/test_api_runner.rb +486 -0
- data/test/commands/unipept/test_config.rb +64 -0
- data/test/commands/unipept/test_pept2lca.rb +40 -0
- data/test/commands/unipept/test_pept2prot.rb +39 -0
- data/test/commands/unipept/test_pept2taxa.rb +39 -0
- data/test/commands/unipept/test_taxa2lca.rb +39 -0
- data/test/commands/unipept/test_taxonomy.rb +37 -0
- data/test/helper.rb +69 -23
- data/test/test_bach_order.rb +57 -0
- data/test/test_base.rb +6 -0
- data/test/test_batch_iterator.rb +87 -0
- data/test/test_configuration.rb +43 -0
- data/test/test_formatters.rb +140 -0
- data/unipept.gemspec +55 -33
- metadata +62 -40
- data/lib/unipept/batch_order.rb +0 -28
- data/lib/unipept/commands/api_runner.rb +0 -239
- data/lib/unipept/commands/pept2lca.rb +0 -6
- data/lib/unipept/commands/pept2prot.rb +0 -20
- data/lib/unipept/commands/taxa2lca.rb +0 -12
- data/lib/unipept/commands.rb +0 -7
- data/lib/unipept/configuration.rb +0 -29
- data/lib/unipept/formatters.rb +0 -135
- data/lib/unipept/version.rb +0 -3
- data/lib/unipept.rb +0 -8
- data/test/test_unipept.rb +0 -7
@@ -0,0 +1,170 @@
|
|
1
|
+
require_relative '../../lib/commands'
|
2
|
+
|
3
|
+
module Unipept
|
4
|
+
class PeptfilterTestCase < Unipept::TestCase
|
5
|
+
def test_length_filter
|
6
|
+
# min length
|
7
|
+
assert(Commands::Peptfilter.filter_length('AALER', 4, 10))
|
8
|
+
assert(Commands::Peptfilter.filter_length('AALER', 5, 10))
|
9
|
+
assert(!Commands::Peptfilter.filter_length('AALER', 6, 10))
|
10
|
+
|
11
|
+
# max length
|
12
|
+
assert(!Commands::Peptfilter.filter_length('AALER', 1, 4))
|
13
|
+
assert(Commands::Peptfilter.filter_length('AALER', 1, 5))
|
14
|
+
assert(Commands::Peptfilter.filter_length('AALER', 1, 6))
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_lacks_filter
|
18
|
+
assert(Commands::Peptfilter.filter_lacks('AALER', ''.chars.to_a))
|
19
|
+
assert(Commands::Peptfilter.filter_lacks('AALER', 'BCD'.chars.to_a))
|
20
|
+
assert(!Commands::Peptfilter.filter_lacks('AALER', 'A'.chars.to_a))
|
21
|
+
assert(!Commands::Peptfilter.filter_lacks('AALER', 'AE'.chars.to_a))
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_contains_filter
|
25
|
+
assert(Commands::Peptfilter.filter_contains('AALER', ''.chars.to_a))
|
26
|
+
assert(Commands::Peptfilter.filter_contains('AALER', 'A'.chars.to_a))
|
27
|
+
assert(Commands::Peptfilter.filter_contains('AALER', 'AE'.chars.to_a))
|
28
|
+
assert(!Commands::Peptfilter.filter_contains('AALER', 'BCD'.chars.to_a))
|
29
|
+
assert(!Commands::Peptfilter.filter_contains('AALER', 'AB'.chars.to_a))
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_filter
|
33
|
+
assert(Commands::Peptfilter.filter('AALTER', 4, 10, 'BCD'.chars.to_a, 'AL'.chars.to_a))
|
34
|
+
assert(!Commands::Peptfilter.filter('AALTER', 7, 10, 'BCD.chars.to_a', 'AL'.chars.to_a))
|
35
|
+
assert(!Commands::Peptfilter.filter('AALTER', 4, 5, 'BCD'.chars.to_a, 'AL'.chars.to_a))
|
36
|
+
assert(!Commands::Peptfilter.filter('AALTER', 4, 10, 'ABC'.chars.to_a, 'AL'.chars.to_a))
|
37
|
+
assert(!Commands::Peptfilter.filter('AALTER', 4, 10, 'BCD'.chars.to_a, 'ALC'.chars.to_a))
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_default_min_length_argument
|
41
|
+
out, _err = capture_io_with_input('A' * 6) do
|
42
|
+
Commands::Peptfilter.run(%w())
|
43
|
+
end
|
44
|
+
assert_equal('A' * 6, out.chomp)
|
45
|
+
|
46
|
+
out, _err = capture_io_with_input('A' * 5) do
|
47
|
+
Commands::Peptfilter.run(%w())
|
48
|
+
end
|
49
|
+
assert_equal('A' * 5, out.chomp)
|
50
|
+
|
51
|
+
out, _err = capture_io_with_input('A' * 4) do
|
52
|
+
Commands::Peptfilter.run(%w())
|
53
|
+
end
|
54
|
+
assert_equal('', out.chomp)
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_default_max_length_argument
|
58
|
+
out, _err = capture_io_with_input('A' * 49) do
|
59
|
+
Commands::Peptfilter.run(%w())
|
60
|
+
end
|
61
|
+
assert_equal('A' * 49, out.chomp)
|
62
|
+
|
63
|
+
out, _err = capture_io_with_input('A' * 50) do
|
64
|
+
Commands::Peptfilter.run(%w())
|
65
|
+
end
|
66
|
+
assert_equal('A' * 50, out.chomp)
|
67
|
+
|
68
|
+
out, _err = capture_io_with_input('A' * 51) do
|
69
|
+
Commands::Peptfilter.run(%w())
|
70
|
+
end
|
71
|
+
assert_equal('', out.chomp)
|
72
|
+
end
|
73
|
+
|
74
|
+
def test_with_min_argument
|
75
|
+
out, _err = capture_io_with_input('A' * 6) do
|
76
|
+
Commands::Peptfilter.run(%w(--minlen 7))
|
77
|
+
end
|
78
|
+
assert_equal('', out.chomp)
|
79
|
+
|
80
|
+
out, _err = capture_io_with_input('A' * 4) do
|
81
|
+
Commands::Peptfilter.run(%w(--minlen 3))
|
82
|
+
end
|
83
|
+
assert_equal('A' * 4, out.chomp)
|
84
|
+
end
|
85
|
+
|
86
|
+
def test_with_max_argument
|
87
|
+
out, _err = capture_io_with_input('A' * 45) do
|
88
|
+
Commands::Peptfilter.run(%w(--maxlen 40))
|
89
|
+
end
|
90
|
+
assert_equal('', out.chomp)
|
91
|
+
|
92
|
+
out, _err = capture_io_with_input('A' * 55) do
|
93
|
+
Commands::Peptfilter.run(%w(--maxlen 60))
|
94
|
+
end
|
95
|
+
assert_equal('A' * 55, out.chomp)
|
96
|
+
end
|
97
|
+
|
98
|
+
def test_with_lacks_argument
|
99
|
+
out, _err = capture_io_with_input('A' * 10) do
|
100
|
+
Commands::Peptfilter.run(%w(--lacks B))
|
101
|
+
end
|
102
|
+
assert_equal('A' * 10, out.chomp)
|
103
|
+
|
104
|
+
out, _err = capture_io_with_input('A' * 10) do
|
105
|
+
Commands::Peptfilter.run(%w(-l B))
|
106
|
+
end
|
107
|
+
assert_equal('A' * 10, out.chomp)
|
108
|
+
|
109
|
+
out, _err = capture_io_with_input('A' * 10) do
|
110
|
+
Commands::Peptfilter.run(%w(--lacks A))
|
111
|
+
end
|
112
|
+
assert_equal('', out.chomp)
|
113
|
+
|
114
|
+
out, _err = capture_io_with_input('A' * 10) do
|
115
|
+
Commands::Peptfilter.run(%w(-l A))
|
116
|
+
end
|
117
|
+
assert_equal('', out.chomp)
|
118
|
+
end
|
119
|
+
|
120
|
+
def test_with_contains_argument
|
121
|
+
out, _err = capture_io_with_input('A' * 10) do
|
122
|
+
Commands::Peptfilter.run(%w(--contains A))
|
123
|
+
end
|
124
|
+
assert_equal('A' * 10, out.chomp)
|
125
|
+
|
126
|
+
out, _err = capture_io_with_input('A' * 10) do
|
127
|
+
Commands::Peptfilter.run(%w(-c A))
|
128
|
+
end
|
129
|
+
assert_equal('A' * 10, out.chomp)
|
130
|
+
|
131
|
+
out, _err = capture_io_with_input('A' * 10) do
|
132
|
+
Commands::Peptfilter.run(%w(--contains B))
|
133
|
+
end
|
134
|
+
assert_equal('', out.chomp)
|
135
|
+
|
136
|
+
out, _err = capture_io_with_input('A' * 10) do
|
137
|
+
Commands::Peptfilter.run(%w(-c B))
|
138
|
+
end
|
139
|
+
assert_equal('', out.chomp)
|
140
|
+
end
|
141
|
+
|
142
|
+
def test_fasta_input
|
143
|
+
out, _err = capture_io_with_input('>') do
|
144
|
+
Commands::Peptfilter.run(%w())
|
145
|
+
end
|
146
|
+
assert_equal('>', out.chomp)
|
147
|
+
|
148
|
+
out, _err = capture_io_with_input(['>', 'A', 'AALTER', '>']) do
|
149
|
+
Commands::Peptfilter.run(%w())
|
150
|
+
end
|
151
|
+
assert_equal(">\nAALTER\n>", out.chomp)
|
152
|
+
end
|
153
|
+
|
154
|
+
def test_normal_input
|
155
|
+
out, _err = capture_io_with_input(['A', 'A' * 11, 'AAAAB', 'BBBBB', 'CCCCC', 'CCCCCA']) do
|
156
|
+
Commands::Peptfilter.run(%w(--minlen 4 --maxlen 10 --lacks B --contains A))
|
157
|
+
end
|
158
|
+
assert_equal('CCCCCA', out.chomp)
|
159
|
+
end
|
160
|
+
|
161
|
+
def test_help
|
162
|
+
out, _err = capture_io_while do
|
163
|
+
assert_raises SystemExit do
|
164
|
+
Commands::Peptfilter.run(%w(-h))
|
165
|
+
end
|
166
|
+
end
|
167
|
+
assert(out.include? 'show help for this command')
|
168
|
+
end
|
169
|
+
end
|
170
|
+
end
|
@@ -0,0 +1,82 @@
|
|
1
|
+
require_relative '../../lib/commands'
|
2
|
+
|
3
|
+
module Unipept
|
4
|
+
class Prot2peptTestCase < Unipept::TestCase
|
5
|
+
def test_normal_input
|
6
|
+
out, _err = capture_io_with_input('AALTERAALTERPAALTER') do
|
7
|
+
Commands::Prot2pept.run(%w())
|
8
|
+
end
|
9
|
+
assert_equal("AALTER\nAALTERPAALTER", out.chomp)
|
10
|
+
|
11
|
+
out, _err = capture_io_with_input('KRKPR') do
|
12
|
+
Commands::Prot2pept.run(%w())
|
13
|
+
end
|
14
|
+
assert_equal("K\nR\nKPR", out.chomp)
|
15
|
+
|
16
|
+
out, _err = capture_io_with_input(%w(AALTERAALTERPAALTER AALTERAA)) do
|
17
|
+
Commands::Prot2pept.run(%w())
|
18
|
+
end
|
19
|
+
assert_equal("AALTER\nAALTERPAALTER\nAALTER\nAA", out.chomp)
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_fasta_input
|
23
|
+
out, _err = capture_io_with_input(">AKA\nAALTERAALTERPAALTER") do
|
24
|
+
Commands::Prot2pept.run(%w())
|
25
|
+
end
|
26
|
+
assert_equal(">AKA\nAALTER\nAALTERPAALTER", out.chomp)
|
27
|
+
|
28
|
+
out, _err = capture_io_with_input(">AKA\nAAL\nT\nERAALTER\nP\nAALTER") do
|
29
|
+
Commands::Prot2pept.run(%w())
|
30
|
+
end
|
31
|
+
assert_equal(">AKA\nAALTER\nAALTERPAALTER", out.chomp)
|
32
|
+
|
33
|
+
out, _err = capture_io_with_input(">AKA\nAAL\nT\n>\nERAALTER\nP\nAALTER") do
|
34
|
+
Commands::Prot2pept.run(%w())
|
35
|
+
end
|
36
|
+
assert_equal(">AKA\nAALT\n>\nER\nAALTERPAALTER", out.chomp)
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_default_pattern
|
40
|
+
default_out, _err = capture_io_with_input('AALTERAALTERPAALTER') do
|
41
|
+
Commands::Prot2pept.run(%w())
|
42
|
+
end
|
43
|
+
assert_equal("AALTER\nAALTERPAALTER", default_out.chomp)
|
44
|
+
|
45
|
+
pattern_out, _err = capture_io_with_input('AALTERAALTERPAALTER') do
|
46
|
+
Commands::Prot2pept.run(['-p', '([KR])([^P])'])
|
47
|
+
end
|
48
|
+
assert_equal(default_out, pattern_out)
|
49
|
+
|
50
|
+
pattern_out, _err = capture_io_with_input('AALTERAALTERPAALTER') do
|
51
|
+
Commands::Prot2pept.run(['--pattern', '([KR])([^P])'])
|
52
|
+
end
|
53
|
+
assert_equal(default_out, pattern_out)
|
54
|
+
end
|
55
|
+
|
56
|
+
def test_pattern
|
57
|
+
out, _err = capture_io_with_input('AALTERAALTERPAALTER') do
|
58
|
+
Commands::Prot2pept.run(%w())
|
59
|
+
end
|
60
|
+
assert_equal("AALTER\nAALTERPAALTER", out.chomp)
|
61
|
+
|
62
|
+
out, _err = capture_io_with_input('AALTERAALTERPAALTER') do
|
63
|
+
Commands::Prot2pept.run(%w(-p ([KR])([^A])))
|
64
|
+
end
|
65
|
+
assert_equal("AALTERAALTER\nPAALTER", out.chomp)
|
66
|
+
|
67
|
+
out, _err = capture_io_with_input('AALTERAALTERPAALTER') do
|
68
|
+
Commands::Prot2pept.run(%w(--pattern ([KR])([^A])))
|
69
|
+
end
|
70
|
+
assert_equal("AALTERAALTER\nPAALTER", out.chomp)
|
71
|
+
end
|
72
|
+
|
73
|
+
def test_help
|
74
|
+
out, _err = capture_io_while do
|
75
|
+
assert_raises SystemExit do
|
76
|
+
Commands::Prot2pept.run(%w(-h))
|
77
|
+
end
|
78
|
+
end
|
79
|
+
assert(out.include? 'show help for this command')
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require_relative '../../lib/commands'
|
2
|
+
|
3
|
+
module Unipept
|
4
|
+
class UnipeptTestCase < Unipept::TestCase
|
5
|
+
def test_help
|
6
|
+
out, _err = capture_io_while do
|
7
|
+
assert_raises SystemExit do
|
8
|
+
Commands::Unipept.run(%w(-h))
|
9
|
+
end
|
10
|
+
end
|
11
|
+
assert(out.include? 'show help for this command')
|
12
|
+
|
13
|
+
out, _err = capture_io_while do
|
14
|
+
assert_raises SystemExit do
|
15
|
+
Commands::Unipept.run(%w(--help))
|
16
|
+
end
|
17
|
+
end
|
18
|
+
assert(out.include? 'show help for this command')
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_no_valid_subcommand
|
22
|
+
_out, err = capture_io_while do
|
23
|
+
assert_raises SystemExit do
|
24
|
+
Commands::Unipept.run(%w())
|
25
|
+
end
|
26
|
+
end
|
27
|
+
assert(err.include? 'show help for this command')
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_version
|
31
|
+
out, _err = capture_io_while do
|
32
|
+
Commands::Unipept.run(%w(-v))
|
33
|
+
end
|
34
|
+
assert_equal(VERSION, out.chomp)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,136 @@
|
|
1
|
+
require_relative '../../lib/commands'
|
2
|
+
|
3
|
+
module Unipept
|
4
|
+
class UniprotTestCase < Unipept::TestCase
|
5
|
+
def test_argument_input
|
6
|
+
out, _err = capture_io_while do
|
7
|
+
Commands::Uniprot.run(%w(Q6GZX3))
|
8
|
+
end
|
9
|
+
assert_equal(1, out.split(/\n/).length)
|
10
|
+
|
11
|
+
out, _err = capture_io_while do
|
12
|
+
Commands::Uniprot.run(%w(Q6GZX3 Q6GZX4))
|
13
|
+
end
|
14
|
+
assert_equal(2, out.split(/\n/).length)
|
15
|
+
|
16
|
+
out, _err = capture_io_while do
|
17
|
+
Commands::Uniprot.run(%w(-f fasta Q6GZX3 Q6GZX4))
|
18
|
+
end
|
19
|
+
assert_equal(2, out.count('>'))
|
20
|
+
|
21
|
+
out, _err = capture_io_while do
|
22
|
+
Commands::Uniprot.run(%w(--format fasta Q6GZX3 Q6GZX4))
|
23
|
+
end
|
24
|
+
assert_equal(2, out.count('>'))
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_stdin_input
|
28
|
+
out, _err = capture_io_with_input('Q6GZX3') do
|
29
|
+
Commands::Uniprot.run(%w())
|
30
|
+
end
|
31
|
+
assert_equal(1, out.split(/\n/).length)
|
32
|
+
|
33
|
+
out, _err = capture_io_with_input(%w(Q6GZX3 Q6GZX4)) do
|
34
|
+
Commands::Uniprot.run(%w())
|
35
|
+
end
|
36
|
+
assert_equal(2, out.split(/\n/).length)
|
37
|
+
|
38
|
+
out, _err = capture_io_with_input(%w(Q6GZX3 Q6GZX4)) do
|
39
|
+
Commands::Uniprot.run(%w(-f fasta))
|
40
|
+
end
|
41
|
+
assert_equal(2, out.count('>'))
|
42
|
+
|
43
|
+
out, _err = capture_io_with_input(%w(Q6GZX3 Q6GZX4)) do
|
44
|
+
Commands::Uniprot.run(%w(--format fasta))
|
45
|
+
end
|
46
|
+
assert_equal(2, out.count('>'))
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_argument_input_priority
|
50
|
+
out, _err = capture_io_with_input('Q6GZX3') do
|
51
|
+
Commands::Uniprot.run(%w(Q6GZX3 Q6GZX4))
|
52
|
+
end
|
53
|
+
assert_equal(2, out.split(/\n/).length)
|
54
|
+
|
55
|
+
out, _err = capture_io_with_input(%w(Q6GZX3 Q6GZX4)) do
|
56
|
+
Commands::Uniprot.run(%w(Q6GZX3))
|
57
|
+
end
|
58
|
+
assert_equal(1, out.split(/\n/).length)
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_invalid_format
|
62
|
+
out, err = capture_io_while do
|
63
|
+
assert_raises SystemExit do
|
64
|
+
Commands::Uniprot.run(%w(--format xxx))
|
65
|
+
end
|
66
|
+
end
|
67
|
+
assert_equal('', out)
|
68
|
+
assert(err.include? 'xxx is not a valid output format')
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_default_format
|
72
|
+
out_default, _err = capture_io_while do
|
73
|
+
Commands::Uniprot.run(%w(Q6GZX3))
|
74
|
+
end
|
75
|
+
assert_equal(1, out_default.split(/\n/).length)
|
76
|
+
|
77
|
+
out_sequence, _err = capture_io_while do
|
78
|
+
Commands::Uniprot.run(%w(-f sequence Q6GZX3))
|
79
|
+
end
|
80
|
+
assert_equal(out_default, out_sequence)
|
81
|
+
|
82
|
+
out_sequence, _err = capture_io_while do
|
83
|
+
Commands::Uniprot.run(%w(--format sequence Q6GZX3))
|
84
|
+
end
|
85
|
+
assert_equal(out_default, out_sequence)
|
86
|
+
end
|
87
|
+
|
88
|
+
def test_format_options
|
89
|
+
# fasta txt xml rdf gff sequence
|
90
|
+
out, err = capture_io_while do
|
91
|
+
Commands::Uniprot.run(%w(-f fasta Q6GZX3))
|
92
|
+
end
|
93
|
+
assert(!out.empty?)
|
94
|
+
assert(err.empty?)
|
95
|
+
|
96
|
+
out, err = capture_io_while do
|
97
|
+
Commands::Uniprot.run(%w(-f txt Q6GZX3))
|
98
|
+
end
|
99
|
+
assert(!out.empty?)
|
100
|
+
assert(err.empty?)
|
101
|
+
|
102
|
+
out, err = capture_io_while do
|
103
|
+
Commands::Uniprot.run(%w(-f xml Q6GZX3))
|
104
|
+
end
|
105
|
+
assert(!out.empty?)
|
106
|
+
assert(err.empty?)
|
107
|
+
|
108
|
+
out, err = capture_io_while do
|
109
|
+
Commands::Uniprot.run(%w(-f rdf Q6GZX3))
|
110
|
+
end
|
111
|
+
assert(!out.empty?)
|
112
|
+
assert(err.empty?)
|
113
|
+
|
114
|
+
out, err = capture_io_while do
|
115
|
+
Commands::Uniprot.run(%w(-f gff Q6GZX3))
|
116
|
+
end
|
117
|
+
assert(!out.empty?)
|
118
|
+
assert(err.empty?)
|
119
|
+
|
120
|
+
out, err = capture_io_while do
|
121
|
+
Commands::Uniprot.run(%w(-f sequence Q6GZX3))
|
122
|
+
end
|
123
|
+
assert(!out.empty?)
|
124
|
+
assert(err.empty?)
|
125
|
+
end
|
126
|
+
|
127
|
+
def test_help
|
128
|
+
out, _err = capture_io_while do
|
129
|
+
assert_raises SystemExit do
|
130
|
+
Commands::Uniprot.run(%w(-h))
|
131
|
+
end
|
132
|
+
end
|
133
|
+
assert(out.include? 'show help for this command')
|
134
|
+
end
|
135
|
+
end
|
136
|
+
end
|