rbbt-util 5.28.9 → 5.28.10
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/rbbt/entity.rb +1 -1
- data/lib/rbbt/fix_width_table.rb +5 -4
- data/lib/rbbt/persist.rb +1 -1
- data/lib/rbbt/persist/tsv/adapter.rb +0 -1
- data/lib/rbbt/persist/tsv/fix_width_table.rb +5 -3
- data/lib/rbbt/tsv/dumper.rb +6 -2
- data/lib/rbbt/util/cmd.rb +1 -0
- data/lib/rbbt/util/misc/bgzf.rb +1 -1
- data/lib/rbbt/util/named_array.rb +1 -1
- data/lib/rbbt/util/open.rb +17 -16
- data/lib/rbbt/workflow/definition.rb +2 -1
- data/lib/rbbt/workflow/integration/ansible.rb +53 -0
- data/lib/rbbt/workflow/integration/ansible/workflow.rb +60 -0
- data/lib/rbbt/workflow/step.rb +5 -0
- data/lib/rbbt/workflow/step/accessor.rb +1 -1
- data/lib/rbbt/workflow/util/archive.rb +2 -0
- data/lib/rbbt/workflow/util/orchestrator.rb +22 -9
- data/share/rbbt_commands/ansible +55 -0
- data/share/rbbt_commands/purge_job +0 -1
- data/share/rbbt_commands/workflow/forget_deps +9 -0
- data/test/rbbt/association/test_index.rb +6 -6
- data/test/rbbt/knowledge_base/test_query.rb +3 -3
- data/test/rbbt/knowledge_base/test_registry.rb +1 -1
- data/test/rbbt/persist/tsv/test_cdb.rb +0 -7
- data/test/rbbt/persist/tsv/test_kyotocabinet.rb +2 -8
- data/test/rbbt/persist/tsv/test_leveldb.rb +0 -6
- data/test/rbbt/persist/tsv/test_lmdb.rb +0 -6
- data/test/rbbt/persist/tsv/test_tokyocabinet.rb +15 -14
- data/test/rbbt/test_entity.rb +0 -1
- data/test/rbbt/test_knowledge_base.rb +3 -4
- data/test/rbbt/test_persist.rb +10 -6
- data/test/rbbt/test_workflow.rb +17 -16
- data/test/rbbt/tsv/test_accessor.rb +11 -0
- data/test/rbbt/tsv/test_attach.rb +0 -2
- data/test/rbbt/tsv/test_index.rb +6 -7
- data/test/rbbt/tsv/test_manipulate.rb +2 -3
- data/test/rbbt/util/R/test_model.rb +2 -1
- data/test/rbbt/util/R/test_plot.rb +0 -2
- data/test/rbbt/util/concurrency/test_processes.rb +1 -1
- data/test/rbbt/util/misc/test_bgzf.rb +11 -7
- data/test/rbbt/util/misc/test_lock.rb +0 -1
- data/test/rbbt/util/misc/test_multipart_payload.rb +1 -1
- data/test/rbbt/util/misc/test_pipes.rb +0 -5
- data/test/rbbt/util/test_R.rb +1 -0
- data/test/rbbt/util/test_log.rb +4 -6
- data/test/rbbt/util/test_misc.rb +0 -2
- data/test/rbbt/util/test_open.rb +0 -1
- data/test/rbbt/util/test_python.rb +17 -1
- data/test/rbbt/workflow/test_remote_workflow.rb +1 -1
- data/test/rbbt/workflow/test_step.rb +8 -3
- data/test/rbbt/workflow/util/test_orchestrator.rb +50 -0
- metadata +5 -4
- data/test/rbbt/workflow/remote/test_client.rb +0 -56
@@ -0,0 +1,55 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rbbt-util'
|
4
|
+
require 'rbbt/util/simpleopt'
|
5
|
+
|
6
|
+
$0 = "rbbt #{$previous_commands*" "} #{ File.basename(__FILE__) }" if $previous_commands
|
7
|
+
|
8
|
+
options = SOPT.setup <<EOF
|
9
|
+
|
10
|
+
Run ansible
|
11
|
+
|
12
|
+
$ #{$0} [options] <rules.yml|->
|
13
|
+
|
14
|
+
Use - to read from STDIN
|
15
|
+
|
16
|
+
-h--help Print this help
|
17
|
+
-dr--dry_run Only print the playbook
|
18
|
+
-H--hosts* hosts to run it on
|
19
|
+
EOF
|
20
|
+
if options[:help]
|
21
|
+
if defined? rbbt_usage
|
22
|
+
rbbt_usage
|
23
|
+
else
|
24
|
+
puts SOPT.doc
|
25
|
+
end
|
26
|
+
exit 0
|
27
|
+
end
|
28
|
+
|
29
|
+
require 'rbbt/workflow/integration/ansible'
|
30
|
+
|
31
|
+
playbook, task = ARGV
|
32
|
+
playbook_file = Rbbt.share.ansible["test.yaml"].find if playbook.nil?
|
33
|
+
|
34
|
+
dry_run = options.delete :dry_run
|
35
|
+
|
36
|
+
if ! Misc.filename?(playbook_file)
|
37
|
+
playbook_file = Rbbt.share.ansible.glob(playbook + ".*").first
|
38
|
+
end
|
39
|
+
|
40
|
+
if ! Misc.filename?(playbook_file)
|
41
|
+
recipe = Rbbt.share.recipes.glob(playbook + ".*").first
|
42
|
+
playbook_file = Ansible.playbook recipe, task, options
|
43
|
+
end
|
44
|
+
|
45
|
+
|
46
|
+
if dry_run
|
47
|
+
if Hash === playbook_file
|
48
|
+
ppp playbook_file.to_yaml
|
49
|
+
else
|
50
|
+
ppp Log.color :magenta, playbook_file
|
51
|
+
ppp Open.read(playbook_file)
|
52
|
+
end
|
53
|
+
else
|
54
|
+
Ansible.play playbook_file
|
55
|
+
end
|
@@ -13,6 +13,8 @@ Make a job forget all its dependencies and archive their meta-data
|
|
13
13
|
$ #{$0} [options] <job_path>
|
14
14
|
|
15
15
|
-h--help Print this help
|
16
|
+
-p--purge Purge dependencies
|
17
|
+
-r--recursive_purge Purge dependencies recursively
|
16
18
|
|
17
19
|
EOF
|
18
20
|
if options[:help]
|
@@ -31,4 +33,11 @@ step = Workflow.load_step path
|
|
31
33
|
|
32
34
|
step.archive_deps
|
33
35
|
step.copy_files_dir
|
36
|
+
dependencies = step.dependencies
|
34
37
|
step.set_info :dependencies, []
|
38
|
+
|
39
|
+
if options[:purge]
|
40
|
+
dependencies.each do |dependency|
|
41
|
+
Step.purge(dependency.path, options[:recursive_purge])
|
42
|
+
end
|
43
|
+
end
|
@@ -73,21 +73,21 @@ TP53 NFKB1|GLI1 activation|activation true|true
|
|
73
73
|
|
74
74
|
def test_index_flat
|
75
75
|
require 'rbbt/sources/tfacts'
|
76
|
-
file =
|
76
|
+
file = TFactS.regulators
|
77
77
|
tsv = Association.index(file, :type => :flat, :source => "Transcription Factor Associated Gene Name=~Associated Gene Name", :merge => true)
|
78
78
|
assert tsv.match("TP53").length > 10
|
79
79
|
end
|
80
80
|
|
81
81
|
def test_index_flat_to_matrix
|
82
82
|
require 'rbbt/sources/tfacts'
|
83
|
-
file =
|
83
|
+
file = TFactS.regulators
|
84
84
|
tsv = Association.index(file, :type => :flat, :source => "Transcription Factor Associated Gene Name=~Associated Gene Name", :merge => true)
|
85
85
|
assert(tsv.to_matrix(false))
|
86
86
|
end
|
87
87
|
|
88
88
|
def test_filter_no_block
|
89
89
|
require 'rbbt/sources/tfacts'
|
90
|
-
file =
|
90
|
+
file = TFactS.regulators
|
91
91
|
tsv = Association.index(EFFECT, EFFECT_OPTIONS.merge(:undirected => false, :source => "SG=~Associated Gene Name", :target => "TG=~Associated Gene Name"), :persist => true)
|
92
92
|
tsv.unnamed = false
|
93
93
|
matches = tsv.filter :directed?
|
@@ -96,7 +96,7 @@ TP53 NFKB1|GLI1 activation|activation true|true
|
|
96
96
|
|
97
97
|
def test_filter_no_block_value
|
98
98
|
require 'rbbt/sources/tfacts'
|
99
|
-
file =
|
99
|
+
file = TFactS.regulators
|
100
100
|
tsv = Association.index(EFFECT, EFFECT_OPTIONS.merge(:undirected => false, :source => "SG=~Associated Gene Name", :target => "TG=~Associated Gene Name"), :persist => true)
|
101
101
|
tsv.unnamed = false
|
102
102
|
matches = tsv.filter :Effect, "inhibition"
|
@@ -105,7 +105,7 @@ TP53 NFKB1|GLI1 activation|activation true|true
|
|
105
105
|
|
106
106
|
def test_filter_block_value_field
|
107
107
|
require 'rbbt/sources/tfacts'
|
108
|
-
file =
|
108
|
+
file = TFactS.regulators
|
109
109
|
tsv = Association.index(EFFECT, EFFECT_OPTIONS.merge(:undirected => false, :source => "SG=~Associated Gene Name", :target => "TG=~Associated Gene Name"), :persist => true)
|
110
110
|
tsv.unnamed = false
|
111
111
|
matches = tsv.filter :Effect do |value|
|
@@ -116,7 +116,7 @@ TP53 NFKB1|GLI1 activation|activation true|true
|
|
116
116
|
|
117
117
|
def test_filter_block_no_value_field
|
118
118
|
require 'rbbt/sources/tfacts'
|
119
|
-
file =
|
119
|
+
file = TFactS.regulators
|
120
120
|
tsv = Association.index(EFFECT, EFFECT_OPTIONS.merge(:undirected => false, :source => "SG=~Associated Gene Name", :target => "TG=~Associated Gene Name"), :persist => true)
|
121
121
|
tsv.unnamed = false
|
122
122
|
matches = tsv.filter do |key,values|
|
@@ -22,7 +22,7 @@ TP53 NFKB1|GLI1 activation|activation true|true
|
|
22
22
|
:namespace => "Hsa"
|
23
23
|
}
|
24
24
|
|
25
|
-
EFFECT_TSV = TSV.open EFFECT, EFFECT_OPTIONS.dup
|
25
|
+
EFFECT_TSV = TSV.open EFFECT, EFFECT_OPTIONS.dup
|
26
26
|
|
27
27
|
KNOWLEDGE_BASE = KnowledgeBase.new Rbbt.tmp.test.kb_foo2, "Hsa"
|
28
28
|
KNOWLEDGE_BASE.format = {"Gene" => "Ensembl Gene ID"}
|
@@ -34,11 +34,11 @@ TP53 NFKB1|GLI1 activation|activation true|true
|
|
34
34
|
assert_equal 6, KNOWLEDGE_BASE.subset(:effects, :all).length
|
35
35
|
|
36
36
|
assert_equal 4, KNOWLEDGE_BASE.subset(:effects, :all).target_entity.uniq.length
|
37
|
-
assert_equal %w(Effect), KNOWLEDGE_BASE.subset(:effects, :all).info.first.keys
|
37
|
+
assert_equal %w(Effect), KNOWLEDGE_BASE.subset(:effects, :all).info.first.keys
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
41
|
-
def
|
41
|
+
def _test_subset_all_persist_format
|
42
42
|
assert KNOWLEDGE_BASE.subset(:effects, :all).target_entity.reject{|e| e =~ /^ENS/}.empty?
|
43
43
|
end
|
44
44
|
|
@@ -45,7 +45,7 @@ TP53 NFKB1|GLI1 activation|activation true|true
|
|
45
45
|
|
46
46
|
def test_index_flat
|
47
47
|
require 'rbbt/sources/tfacts'
|
48
|
-
file =
|
48
|
+
file = TFactS.regulators
|
49
49
|
KNOWLEDGE_BASE.register :tfacts, file, :type => :flat, :source => "Transcription Factor Associated Gene Name=~Associated Gene Name", :merge => true
|
50
50
|
assert KNOWLEDGE_BASE.subset(:tfacts, :source => ["TP53"], :target => :all).length > 10
|
51
51
|
end
|
@@ -4,19 +4,12 @@ require 'rbbt/annotations'
|
|
4
4
|
require 'rbbt/util/tmpfile'
|
5
5
|
require 'test/unit'
|
6
6
|
|
7
|
-
module TestAnnotation
|
8
|
-
extend Annotation
|
9
|
-
|
10
|
-
self.annotation :test_annotation
|
11
|
-
end
|
12
|
-
|
13
7
|
class TestPersistTSVCDB < Test::Unit::TestCase
|
14
8
|
|
15
9
|
if Persist.respond_to? :open_cbd
|
16
10
|
def test_organism
|
17
11
|
require 'rbbt/sources/organism'
|
18
12
|
TmpFile.with_file nil do |tmp_file|
|
19
|
-
file = CMD.cmd("head -n 1000000", :in => Organism.identifiers("Hsa").open, :pipe => true)
|
20
13
|
tsv = Organism.identifiers("Hsa").tsv(:key_field => "Associated Gene Name", :fields => ["Ensembl Gene ID"], :type => :single, :persist => true, :persist_engine => "CDB", :persist_dir => tmp_file)
|
21
14
|
assert_equal "ENSG00000141510", tsv["TP53"]
|
22
15
|
end
|
@@ -5,15 +5,9 @@ require 'rbbt/annotations'
|
|
5
5
|
require 'rbbt/util/tmpfile'
|
6
6
|
require 'test/unit'
|
7
7
|
|
8
|
-
module TestAnnotation
|
9
|
-
extend Annotation
|
10
|
-
|
11
|
-
self.annotation :test_annotation
|
12
|
-
end
|
13
|
-
|
14
8
|
class TestPersistTSVKC < Test::Unit::TestCase
|
15
9
|
if Persist.respond_to? :open_kyotocabinet
|
16
|
-
def
|
10
|
+
def test_organism_kch
|
17
11
|
require 'rbbt/sources/organism'
|
18
12
|
TmpFile.with_file do |tmp_file|
|
19
13
|
tsv = Organism.identifiers("Hsa").tsv :key_field => "Associated Gene Name", :fields => ["Ensembl Gene ID"], :type => :single, :persist => true, :persist_engine => "kch", :persist_dir => tmp_file
|
@@ -22,7 +16,7 @@ class TestPersistTSVKC < Test::Unit::TestCase
|
|
22
16
|
end
|
23
17
|
|
24
18
|
|
25
|
-
def
|
19
|
+
def test_organism_kct
|
26
20
|
require 'rbbt/sources/organism'
|
27
21
|
TmpFile.with_file do |tmp_file|
|
28
22
|
tsv = Organism.identifiers("Hsa").tsv :key_field => "Associated Gene Name", :fields => ["Ensembl Gene ID"], :type => :single, :persist => true, :persist_engine => "kct", :persist_dir => tmp_file
|
@@ -4,12 +4,6 @@ require 'rbbt/annotations'
|
|
4
4
|
require 'rbbt/util/tmpfile'
|
5
5
|
require 'test/unit'
|
6
6
|
|
7
|
-
module TestAnnotation
|
8
|
-
extend Annotation
|
9
|
-
|
10
|
-
self.annotation :test_annotation
|
11
|
-
end
|
12
|
-
|
13
7
|
class TestPersistTSVLevelDB < Test::Unit::TestCase
|
14
8
|
|
15
9
|
if Persist.respond_to? :open_leveldb
|
@@ -4,7 +4,8 @@ require 'rbbt/annotations'
|
|
4
4
|
require 'rbbt/util/tmpfile'
|
5
5
|
require 'test/unit'
|
6
6
|
|
7
|
-
|
7
|
+
|
8
|
+
module TestAnnotationModule
|
8
9
|
extend Annotation
|
9
10
|
|
10
11
|
self.annotation :test_annotation
|
@@ -25,8 +26,8 @@ class TestPersistTSVTC < Test::Unit::TestCase
|
|
25
26
|
entity1 = "Entity 1"
|
26
27
|
entity2 = "Entity 2"
|
27
28
|
|
28
|
-
|
29
|
-
|
29
|
+
TestAnnotationModule.setup(entity1, :test_annotation => "1")
|
30
|
+
TestAnnotationModule.setup(entity2, :test_annotation => "2")
|
30
31
|
|
31
32
|
annotations = [entity1, entity2]
|
32
33
|
|
@@ -56,9 +57,9 @@ class TestPersistTSVTC < Test::Unit::TestCase
|
|
56
57
|
entity2 = "Entity 2"
|
57
58
|
entity2bis = "Entity 2"
|
58
59
|
|
59
|
-
|
60
|
-
|
61
|
-
|
60
|
+
TestAnnotationModule.setup(entity1, :test_annotation => "1")
|
61
|
+
TestAnnotationModule.setup(entity2, :test_annotation => "2")
|
62
|
+
TestAnnotationModule.setup(entity2bis, :test_annotation => "2")
|
62
63
|
|
63
64
|
annotations = [entity1, entity2, entity2bis]
|
64
65
|
|
@@ -105,8 +106,8 @@ class TestPersistTSVTC < Test::Unit::TestCase
|
|
105
106
|
entity1 = "Entity 1"
|
106
107
|
entity2 = "Entity 2"
|
107
108
|
|
108
|
-
|
109
|
-
|
109
|
+
TestAnnotationModule.setup(entity1, :test_annotation => "1")
|
110
|
+
TestAnnotationModule.setup(entity2, :test_annotation => "2")
|
110
111
|
|
111
112
|
annotations = [entity1, entity2]
|
112
113
|
|
@@ -138,7 +139,7 @@ class TestPersistTSVTC < Test::Unit::TestCase
|
|
138
139
|
entity2 = "Entity 2"
|
139
140
|
|
140
141
|
annotations = [entity1, entity2]
|
141
|
-
|
142
|
+
TestAnnotationModule.setup(annotations, :test_annotation => "1")
|
142
143
|
annotations.extend AnnotatedArray
|
143
144
|
|
144
145
|
persisted_annotations = Persist.persist("Test", :annotations, :annotation_repo => repo) do
|
@@ -171,11 +172,11 @@ class TestPersistTSVTC < Test::Unit::TestCase
|
|
171
172
|
entity2 = "Entity 2"
|
172
173
|
|
173
174
|
annotations = [entity1, entity2]
|
174
|
-
|
175
|
+
TestAnnotationModule.setup(annotations, :test_annotation => "1")
|
175
176
|
annotations.extend AnnotatedArray
|
176
177
|
|
177
178
|
annotations_ary = [annotations]
|
178
|
-
|
179
|
+
TestAnnotationModule.setup(annotations_ary, :test_annotation => "1")
|
179
180
|
annotations_ary.extend AnnotatedArray
|
180
181
|
|
181
182
|
persisted_annotations = Persist.persist("Test", :annotations, :annotation_repo => repo) do
|
@@ -210,9 +211,9 @@ class TestPersistTSVTC < Test::Unit::TestCase
|
|
210
211
|
entity2 = "Entity 2"
|
211
212
|
entity2bis = "Entity 2"
|
212
213
|
|
213
|
-
|
214
|
-
|
215
|
-
|
214
|
+
TestAnnotationModule.setup(entity1, :test_annotation => "1")
|
215
|
+
TestAnnotationModule.setup(entity2, :test_annotation => "2")
|
216
|
+
TestAnnotationModule.setup(entity2bis, :test_annotation => "2")
|
216
217
|
|
217
218
|
annotations = [entity1, entity2, entity2bis]
|
218
219
|
|
data/test/rbbt/test_entity.rb
CHANGED
@@ -62,7 +62,7 @@ class TestKnowledgeBase < Test::Unit::TestCase
|
|
62
62
|
kb = KnowledgeBase.new tmpdir, Organism.default_code("Hsa")
|
63
63
|
kb.format = {"Gene" => "Ensembl Gene ID"}
|
64
64
|
|
65
|
-
kb.register :tfacts,
|
65
|
+
kb.register :tfacts, TFactS.regulators, :source =>"=~Associated Gene Name"
|
66
66
|
|
67
67
|
kb.get_index(:tfacts).reverse
|
68
68
|
end
|
@@ -74,7 +74,7 @@ class TestKnowledgeBase < Test::Unit::TestCase
|
|
74
74
|
kb = KnowledgeBase.new tmpdir, Organism.default_code("Hsa")
|
75
75
|
kb.format = {"Gene" => "Ensembl Gene ID"}
|
76
76
|
|
77
|
-
kb.register :tfacts,
|
77
|
+
kb.register :tfacts, TFactS.regulators, :source =>"=~Associated Gene Name"
|
78
78
|
|
79
79
|
assert_equal "Ensembl Gene ID", kb.get_database(:tfacts).key_field
|
80
80
|
|
@@ -113,10 +113,9 @@ class TestKnowledgeBase < Test::Unit::TestCase
|
|
113
113
|
|
114
114
|
def test_knowledge_base_reuse
|
115
115
|
organism = Organism.default_code("Hsa")
|
116
|
-
Log.severity = 0
|
117
116
|
TmpFile.with_file do |tmpdir|
|
118
117
|
Path.setup(tmpdir)
|
119
|
-
Association.index(
|
118
|
+
Association.index(TFactS.regulators, :persist_file => tmpdir.tfacts, :format => {"Gene" => "Ensembl Gene ID"}, :namespace => Organism.default_code("Hsa"))
|
120
119
|
|
121
120
|
kb = KnowledgeBase.load(tmpdir)
|
122
121
|
assert kb.identify_source('tfacts', "TP53") =~ /ENSG/
|
data/test/rbbt/test_persist.rb
CHANGED
@@ -4,12 +4,6 @@ require 'rbbt/annotations'
|
|
4
4
|
require 'rbbt/util/tmpfile'
|
5
5
|
require 'test/unit'
|
6
6
|
|
7
|
-
module TestAnnotation
|
8
|
-
extend Annotation
|
9
|
-
|
10
|
-
self.annotation :test_annotation
|
11
|
-
end
|
12
|
-
|
13
7
|
class TestPersist < Test::Unit::TestCase
|
14
8
|
|
15
9
|
def test_array_persist
|
@@ -78,4 +72,14 @@ class TestPersist < Test::Unit::TestCase
|
|
78
72
|
stream.join
|
79
73
|
end
|
80
74
|
end
|
75
|
+
|
76
|
+
def test_newer
|
77
|
+
TmpFile.with_file("Test1") do |tmp1|
|
78
|
+
sleep 1
|
79
|
+
TmpFile.with_file("Test1") do |tmp2|
|
80
|
+
assert Persist.newer?(tmp1, tmp2)
|
81
|
+
assert ! Persist.newer?(tmp2, tmp1)
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
81
85
|
end
|
data/test/rbbt/test_workflow.rb
CHANGED
@@ -204,7 +204,6 @@ class TestWorkflow < Test::Unit::TestCase
|
|
204
204
|
|
205
205
|
def test_update_on_input_dependency_update
|
206
206
|
Open.repository_dirs << File.join(ENV["HOME"],".rbbt/tmp/test/workflow")
|
207
|
-
Log.severity = 0
|
208
207
|
Misc.with_env "RBBT_UPDATE", "true" do
|
209
208
|
send_input_dep_to_reverse_job = TestWF.job(:send_input_dep_to_reverse, nil, :name => "Miguel")
|
210
209
|
send_input_dep_to_reverse_job.clean
|
@@ -376,21 +375,23 @@ class TestWorkflow < Test::Unit::TestCase
|
|
376
375
|
def test_delete_dep
|
377
376
|
job = TestWF.job(:t3).recursive_clean
|
378
377
|
job.run
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
378
|
+
Misc.with_env "RBBT_UPDATE", 'true' do
|
379
|
+
assert job.checks.select{|d| d.task_name.to_s == "t1" }.any?
|
380
|
+
job = TestWF.job(:t3)
|
381
|
+
job.step(:t1).clean
|
382
|
+
assert job.checks.select{|d| d.task_name.to_s == "t1" }.empty?
|
383
|
+
job = TestWF.job(:t3).recursive_clean
|
384
|
+
job.run
|
385
|
+
assert job.checks.select{|d| d.task_name.to_s == "t1" }.any?
|
386
|
+
job = TestWF.job(:t3)
|
387
|
+
sleep 1
|
388
|
+
Open.touch job.step(:t1).path
|
389
|
+
Misc.with_env "RBBT_UPDATE", "false" do
|
390
|
+
assert job.updated?
|
391
|
+
end
|
392
|
+
Misc.with_env "RBBT_UPDATE", "true" do
|
393
|
+
assert ! job.updated?
|
394
|
+
end
|
394
395
|
end
|
395
396
|
end
|
396
397
|
|
@@ -222,6 +222,17 @@ row2 aa|aa|AA|AA b1|b2|B1|B2 Id1|Id1|Id2|Id2
|
|
222
222
|
end
|
223
223
|
end
|
224
224
|
|
225
|
+
def test_to_s_no_fields
|
226
|
+
file1 =<<-EOF
|
227
|
+
row6 dd dd ee
|
228
|
+
row1 a b c
|
229
|
+
row2 A B C
|
230
|
+
row3 1 2 3
|
231
|
+
EOF
|
232
|
+
tsv1 = TSV.open StringIO.new(file1), :sep => " "
|
233
|
+
assert tsv1.to_s(:sort, true).include?('dd')
|
234
|
+
end
|
235
|
+
|
225
236
|
def test_to_s_unmerge_expand
|
226
237
|
content =<<-EOF
|
227
238
|
#Id ValueA ValueB OtherID
|