scaffolder-tools 0.1.2 → 0.1.3

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.
data/.rspec CHANGED
@@ -1 +1 @@
1
- --color
1
+ --color --format=progress
@@ -0,0 +1,4 @@
1
+ rvm:
2
+ - 1.8.7
3
+ - 1.9.2
4
+ - jruby
data/Gemfile CHANGED
@@ -10,14 +10,12 @@ end
10
10
  group :development do
11
11
  gem "bundler", "~> 1.0"
12
12
  gem "jeweler", "~> 1.5"
13
- gem "gherkin", "~> 2.3.3"
14
13
  gem "rspec", "~> 2.4"
15
14
  gem "cucumber", "~> 0.10"
16
15
  gem "fakefs", "~> 0.2"
17
16
  gem "aruba", "~> 0.2"
18
17
  gem "mocha", "~> 0.9"
19
- gem "hashie", "~> 0.4"
20
18
  gem "yard", "~> 0.6"
21
19
 
22
- gem "scaffolder-test-helpers", "~> 0.1"
20
+ gem "scaffolder-test-helpers", "~> 0.4"
23
21
  end
@@ -27,10 +27,12 @@ A unix man page is available for each scaffolder command by typing:
27
27
 
28
28
  == Contact
29
29
 
30
- Scaffolder was developed by Michael Barton (http://www.michaelbarton.me.uk).
31
- Pull requests, patches and bug reports are welcome. The source code is
32
- available on github[http://github.com/michaelbarton/scaffolder]. Bug reports
33
- and feature requests should be made here.
30
+ Scaffolder was developed by Michael Barton (www.michaelbarton.me.uk). The
31
+ website for scaffolder is at http://next.gs and a {twitter feed for
32
+ updates}[http://twitter.com/nxtgs] is available. There is a {Google
33
+ group}[http://groups.google.com/group/scaffolder] for questions and comments.
34
+ The source code is available on github[http://github.com/scaffolder]. Bug
35
+ reports and feature requests may also be made there.
34
36
 
35
37
  == Copyright
36
38
 
data/Rakefile CHANGED
@@ -14,10 +14,11 @@ Jeweler::Tasks.new do |gem|
14
14
  gem.name = "scaffolder-tools"
15
15
  gem.summary = "Tools for manipulating genome scaffolds"
16
16
  gem.description = "Binary to use with scaffolder genome scaffolds"
17
- gem.email = "mail@michaelbarton.me.uk"
18
- gem.homepage = "http://www.michaelbarton.me.uk/projects/scaffolder/"
17
+ gem.email = "mail@next.gs"
18
+ gem.homepage = "http://next.gs"
19
19
  gem.authors = ["Michael Barton"]
20
20
  gem.license = "MIT"
21
+ gem.test_files = Dir['spec/**/*.rb']
21
22
  end
22
23
  Jeweler::RubygemsDotOrgTasks.new
23
24
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.2
1
+ 0.1.3
@@ -0,0 +1,137 @@
1
+ Feature: Error checking command line arguments
2
+ In order to recoginise incorrect input
3
+ A user should be able to use the binaries with incorrect inputs
4
+ and be given clear error messages
5
+
6
+
7
+ Scenario: Using sequence where the sequence file specified does not exist
8
+ Given a file named "scaffold.yml" with:
9
+ """
10
+ ---
11
+ -
12
+ sequence:
13
+ source: "seq"
14
+ """
15
+ When I call "scaffolder" with arguments "sequence scaffold.yml missing_file"
16
+ Then the exit status should be 1
17
+ And the stderr should contain "Error. Sequence file not found:"
18
+
19
+ Scenario: Using sequence where the sequence file doesn't contain any thing
20
+ Given an empty file named "sequence.fna"
21
+ Given a file named "scaffold.yml" with:
22
+ """
23
+ ---
24
+ -
25
+ sequence:
26
+ source: "seq1"
27
+ """
28
+ When I call "scaffolder" with arguments "sequence scaffold.yml sequence.fna"
29
+ Then the exit status should be 1
30
+ And the stderr should contain "Error. Sequence file is empty"
31
+
32
+ Scenario: Using sequence where the scaffold file specified does not exist
33
+ Given a file named "sequence.fna" with:
34
+ """
35
+ >seq
36
+ ATGGC
37
+ """
38
+ When I call "scaffolder" with arguments "sequence missing_file sequence.fna"
39
+ Then the exit status should be 1
40
+ And the stderr should contain "Error. Scaffold file not found:"
41
+
42
+ Scenario: Using sequence where the scaffold file doesn't contain anything
43
+ Given an empty file named "scaffold.yml"
44
+ Given a file named "sequence.fna" with:
45
+ """
46
+ >seq
47
+ ATGGC
48
+ """
49
+ When I call "scaffolder" with arguments "sequence scaffold.yml sequence.fna"
50
+ Then the exit status should be 1
51
+ And the stderr should contain "Error. Scaffold file is empty"
52
+
53
+ Scenario: Using sequence where a scaffold sequence is missing
54
+ Given a file named "sequence.fna" with:
55
+ """
56
+ >seq1
57
+ ATGGC
58
+ """
59
+ Given a file named "scaffold.yml" with:
60
+ """
61
+ ---
62
+ -
63
+ sequence:
64
+ source: "seq1"
65
+ -
66
+ sequence:
67
+ source: "seq2"
68
+ """
69
+ When I call "scaffolder" with arguments "sequence scaffold.yml sequence.fna"
70
+ Then the exit status should be 1
71
+ And the stderr should contain "Error. Unknown sequence: seq2"
72
+
73
+ Scenario: Using validate where the sequence file specified does not exist
74
+ Given a file named "scaffold.yml" with:
75
+ """
76
+ ---
77
+ -
78
+ sequence:
79
+ source: "seq"
80
+ """
81
+ When I call "scaffolder" with arguments "validate scaffold.yml missing_file"
82
+ Then the exit status should be 1
83
+ And the stderr should contain "Error. Sequence file not found:"
84
+
85
+ Scenario: Using validate where the sequence file doesn't contain any thing
86
+ Given an empty file named "sequence.fna"
87
+ Given a file named "scaffold.yml" with:
88
+ """
89
+ ---
90
+ -
91
+ sequence:
92
+ source: "seq1"
93
+ """
94
+ When I call "scaffolder" with arguments "validate scaffold.yml sequence.fna"
95
+ Then the exit status should be 1
96
+ And the stderr should contain "Error. Sequence file is empty"
97
+
98
+ Scenario: Using validate where the scaffold file specified does not exist
99
+ Given a file named "sequence.fna" with:
100
+ """
101
+ >seq
102
+ ATGGC
103
+ """
104
+ When I call "scaffolder" with arguments "validate missing_file sequence.fna"
105
+ Then the exit status should be 1
106
+ And the stderr should contain "Error. Scaffold file not found:"
107
+
108
+ Scenario: Using validate where the scaffold file doesn't contain anything
109
+ Given an empty file named "scaffold.yml"
110
+ Given a file named "sequence.fna" with:
111
+ """
112
+ >seq
113
+ ATGGC
114
+ """
115
+ When I call "scaffolder" with arguments "validate scaffold.yml sequence.fna"
116
+ Then the exit status should be 1
117
+ And the stderr should contain "Error. Scaffold file is empty"
118
+
119
+ Scenario: Using validate where a scaffold sequence is missing
120
+ Given a file named "sequence.fna" with:
121
+ """
122
+ >seq1
123
+ ATGGC
124
+ """
125
+ Given a file named "scaffold.yml" with:
126
+ """
127
+ ---
128
+ -
129
+ sequence:
130
+ source: "seq1"
131
+ -
132
+ sequence:
133
+ source: "seq2"
134
+ """
135
+ When I call "scaffolder" with arguments "validate scaffold.yml sequence.fna"
136
+ Then the exit status should be 1
137
+ And the stderr should contain "Error. Unknown sequence: seq2"
@@ -18,73 +18,12 @@ Feature: The scaffolder-sequence binary
18
18
  """
19
19
  When I call "scaffolder" with arguments "sequence scaffold.yml sequence.fna"
20
20
  Then the exit status should be 0
21
- And the stdout should contain "ATGGC"
22
-
23
- Scenario: The sequence file specified does not exist
24
- Given a file named "scaffold.yml" with:
25
- """
26
- ---
27
- -
28
- sequence:
29
- source: "seq"
30
- """
31
- When I call "scaffolder" with arguments "sequence scaffold.yml missing_file"
32
- Then the exit status should be 1
33
- And the stderr should contain "Error. Sequence file not found:"
34
-
35
- Scenario: The sequence file doesn't contain any thing
36
- Given an empty file named "sequence.fna"
37
- Given a file named "scaffold.yml" with:
38
- """
39
- ---
40
- -
41
- sequence:
42
- source: "seq1"
21
+ And the stdout should contain exactly:
43
22
  """
44
- When I call "scaffolder" with arguments "sequence scaffold.yml sequence.fna"
45
- Then the exit status should be 1
46
- And the stderr should contain "Error. Sequence file is empty"
47
-
48
- Scenario: The scaffold file specified does not exist
49
- Given a file named "sequence.fna" with:
50
- """
51
- >seq
23
+ >
52
24
  ATGGC
53
- """
54
- When I call "scaffolder" with arguments "sequence missing_file sequence.fna"
55
- Then the exit status should be 1
56
- And the stderr should contain "Error. Scaffold file not found:"
57
25
 
58
- Scenario: The scaffold file doesn't contain anything
59
- Given an empty file named "scaffold.yml"
60
- Given a file named "sequence.fna" with:
61
26
  """
62
- >seq
63
- ATGGC
64
- """
65
- When I call "scaffolder" with arguments "sequence scaffold.yml sequence.fna"
66
- Then the exit status should be 1
67
- And the stderr should contain "Error. Scaffold file is empty"
68
-
69
- Scenario: One of the sequences specified in the scaffold is missing
70
- Given a file named "sequence.fna" with:
71
- """
72
- >seq1
73
- ATGGC
74
- """
75
- Given a file named "scaffold.yml" with:
76
- """
77
- ---
78
- -
79
- sequence:
80
- source: "seq1"
81
- -
82
- sequence:
83
- source: "seq2"
84
- """
85
- When I call "scaffolder" with arguments "sequence scaffold.yml sequence.fna"
86
- Then the exit status should be 1
87
- And the stderr should contain "Error. Unknown sequence: seq2"
88
27
 
89
28
  Scenario: Using the definition argument before the file arguments
90
29
  Given a file named "sequence.fna" with:
@@ -101,8 +40,12 @@ Feature: The scaffolder-sequence binary
101
40
  """
102
41
  When I call "scaffolder" with arguments "sequence --definition='name' scaffold.yml sequence.fna"
103
42
  Then the exit status should be 0
104
- And the stdout should contain "ATGGC"
105
- And the stdout should contain ">name"
43
+ And the stdout should contain exactly:
44
+ """
45
+ >name
46
+ ATGGC
47
+
48
+ """
106
49
 
107
50
  Scenario: Using the definition argument after the file arguments
108
51
  Given a file named "sequence.fna" with:
@@ -119,10 +62,14 @@ Feature: The scaffolder-sequence binary
119
62
  """
120
63
  When I call "scaffolder" with arguments "sequence scaffold.yml sequence.fna --definition='name'"
121
64
  Then the exit status should be 0
122
- And the stdout should contain "ATGGC"
123
- And the stdout should contain ">name"
65
+ And the stdout should contain exactly:
66
+ """
67
+ >name
68
+ ATGGC
124
69
 
125
- Scenario: Using the argument --no-sequence-hash
70
+ """
71
+
72
+ Scenario: Using the argument --with-sequence-digest
126
73
  Given a file named "sequence.fna" with:
127
74
  """
128
75
  >seq
@@ -135,11 +82,16 @@ Feature: The scaffolder-sequence binary
135
82
  sequence:
136
83
  source: "seq"
137
84
  """
138
- When I call "scaffolder" with arguments "sequence --no-sequence-hash scaffold.yml sequence.fna"
85
+ When I call "scaffolder" with arguments "sequence --with-sequence-digest scaffold.yml sequence.fna"
139
86
  Then the exit status should be 0
140
- And the stdout should contain ">\nATGGC"
87
+ And the stdout should contain exactly:
88
+ """
89
+ >[sha1=32848c64b5bac47e23002c989a9d1bf3d21b8f92]
90
+ ATGGC
141
91
 
142
- Scenario: Using the arguments --no-sequence-hash and --definition
92
+ """
93
+
94
+ Scenario: Using the arguments --with-sequence-digest and --definition
143
95
  Given a file named "sequence.fna" with:
144
96
  """
145
97
  >seq
@@ -152,6 +104,11 @@ Feature: The scaffolder-sequence binary
152
104
  sequence:
153
105
  source: "seq"
154
106
  """
155
- When I call "scaffolder" with arguments "sequence scaffold.yml sequence.fna --no-sequence-hash --definition='name'"
107
+ When I call "scaffolder" with arguments "sequence scaffold.yml sequence.fna --with-sequence-digest --definition='name'"
156
108
  Then the exit status should be 0
157
- And the stdout should contain ">name \nATGGC"
109
+ And the stdout should contain exactly:
110
+ """
111
+ >name [sha1=32848c64b5bac47e23002c989a9d1bf3d21b8f92]
112
+ ATGGC
113
+
114
+ """
@@ -1,4 +1,8 @@
1
1
  When /^I call "([^"]*)" with arguments "([^"]*)"$/ do |command,args|
2
2
  bin = File.join(File.dirname(__FILE__),'..','..','bin',command)
3
- When "I run \"#{bin} #{args}\""
3
+ When "I run `#{bin} #{args}`"
4
+ end
5
+
6
+ Then /^the stdout yaml should contain exactly:$/ do |string|
7
+ YAML.load(string).should == YAML.load(all_stdout)
4
8
  end
@@ -3,72 +3,6 @@ Feature: The scaffolder-validate binary
3
3
  A user can use the scaffolder binary with the argument validate
4
4
  to test that inserts are correctly inserted
5
5
 
6
- Scenario: The sequence file specified does not exist
7
- Given a file named "scaffold.yml" with:
8
- """
9
- ---
10
- -
11
- sequence:
12
- source: "seq"
13
- """
14
- When I call "scaffolder" with arguments "validate scaffold.yml missing_file"
15
- Then the exit status should be 1
16
- And the stderr should contain "Error. Sequence file not found:"
17
-
18
- Scenario: The sequence file doesn't contain any thing
19
- Given an empty file named "sequence.fna"
20
- Given a file named "scaffold.yml" with:
21
- """
22
- ---
23
- -
24
- sequence:
25
- source: "seq1"
26
- """
27
- When I call "scaffolder" with arguments "validate scaffold.yml sequence.fna"
28
- Then the exit status should be 1
29
- And the stderr should contain "Error. Sequence file is empty"
30
-
31
- Scenario: The scaffold file specified does not exist
32
- Given a file named "sequence.fna" with:
33
- """
34
- >seq
35
- ATGGC
36
- """
37
- When I call "scaffolder" with arguments "validate missing_file sequence.fna"
38
- Then the exit status should be 1
39
- And the stderr should contain "Error. Scaffold file not found:"
40
-
41
- Scenario: The scaffold file doesn't contain anything
42
- Given an empty file named "scaffold.yml"
43
- Given a file named "sequence.fna" with:
44
- """
45
- >seq
46
- ATGGC
47
- """
48
- When I call "scaffolder" with arguments "validate scaffold.yml sequence.fna"
49
- Then the exit status should be 1
50
- And the stderr should contain "Error. Scaffold file is empty"
51
-
52
- Scenario: One of the sequences specified in the scaffold is missing
53
- Given a file named "sequence.fna" with:
54
- """
55
- >seq1
56
- ATGGC
57
- """
58
- Given a file named "scaffold.yml" with:
59
- """
60
- ---
61
- -
62
- sequence:
63
- source: "seq1"
64
- -
65
- sequence:
66
- source: "seq2"
67
- """
68
- When I call "scaffolder" with arguments "validate scaffold.yml sequence.fna"
69
- Then the exit status should be 1
70
- And the stderr should contain "Error. Unknown sequence: seq2"
71
-
72
6
  Scenario: Validating a scaffold with no overlapping inserts
73
7
  Given a file named "sequence.fna" with:
74
8
  """
@@ -169,18 +103,18 @@ Feature: The scaffolder-validate binary
169
103
  """
170
104
  When I call "scaffolder" with arguments "validate scaffold.yml sequence.fna"
171
105
  Then the exit status should be 0
172
- And the stdout should contain exactly:
106
+ And the stdout yaml should contain exactly:
173
107
  """
174
- ---
175
- - sequence-insert-overlap:
176
- inserts:
108
+ ---
109
+ - sequence-insert-overlap:
110
+ source: seq
111
+ inserts:
177
112
  - open: 2
178
113
  close: 4
179
114
  source: ins1
180
115
  - open: 3
181
116
  close: 5
182
117
  source: ins2
183
- source: seq
184
118
 
185
119
  """
186
120
 
@@ -220,26 +154,26 @@ Feature: The scaffolder-validate binary
220
154
  """
221
155
  When I call "scaffolder" with arguments "validate scaffold.yml sequence.fna"
222
156
  Then the exit status should be 0
223
- And the stdout should contain exactly:
157
+ And the stdout yaml should contain exactly:
224
158
  """
225
- ---
226
- - sequence-insert-overlap:
227
- inserts:
159
+ ---
160
+ - sequence-insert-overlap:
161
+ source: seq
162
+ inserts:
228
163
  - open: 2
229
164
  close: 4
230
165
  source: ins1
231
166
  - open: 3
232
167
  close: 5
233
168
  source: ins2
169
+ - sequence-insert-overlap:
234
170
  source: seq
235
- - sequence-insert-overlap:
236
- inserts:
171
+ inserts:
237
172
  - open: 6
238
173
  close: 8
239
174
  source: ins1
240
175
  - open: 7
241
176
  close: 9
242
177
  source: ins2
243
- source: seq
244
178
 
245
179
  """