miga-base 0.7.4.0 → 0.7.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (116) hide show
  1. checksums.yaml +4 -4
  2. data/lib/miga/cli.rb +10 -8
  3. data/lib/miga/cli/action.rb +2 -3
  4. data/lib/miga/cli/action/about.rb +5 -6
  5. data/lib/miga/cli/action/add.rb +18 -12
  6. data/lib/miga/cli/action/add_result.rb +2 -3
  7. data/lib/miga/cli/action/archive.rb +1 -2
  8. data/lib/miga/cli/action/classify_wf.rb +8 -6
  9. data/lib/miga/cli/action/console.rb +0 -1
  10. data/lib/miga/cli/action/daemon.rb +7 -7
  11. data/lib/miga/cli/action/date.rb +0 -1
  12. data/lib/miga/cli/action/derep_wf.rb +5 -4
  13. data/lib/miga/cli/action/doctor.rb +28 -20
  14. data/lib/miga/cli/action/doctor/base.rb +29 -6
  15. data/lib/miga/cli/action/edit.rb +1 -2
  16. data/lib/miga/cli/action/files.rb +8 -8
  17. data/lib/miga/cli/action/find.rb +5 -6
  18. data/lib/miga/cli/action/generic.rb +7 -7
  19. data/lib/miga/cli/action/get.rb +20 -17
  20. data/lib/miga/cli/action/get_db.rb +8 -2
  21. data/lib/miga/cli/action/index_wf.rb +1 -1
  22. data/lib/miga/cli/action/init.rb +34 -29
  23. data/lib/miga/cli/action/init/daemon_helper.rb +65 -43
  24. data/lib/miga/cli/action/lair.rb +7 -7
  25. data/lib/miga/cli/action/ln.rb +6 -6
  26. data/lib/miga/cli/action/ls.rb +1 -2
  27. data/lib/miga/cli/action/ncbi_get.rb +11 -3
  28. data/lib/miga/cli/action/new.rb +4 -4
  29. data/lib/miga/cli/action/next_step.rb +0 -1
  30. data/lib/miga/cli/action/preproc_wf.rb +3 -3
  31. data/lib/miga/cli/action/quality_wf.rb +1 -1
  32. data/lib/miga/cli/action/rm.rb +2 -3
  33. data/lib/miga/cli/action/run.rb +8 -8
  34. data/lib/miga/cli/action/stats.rb +3 -3
  35. data/lib/miga/cli/action/summary.rb +7 -6
  36. data/lib/miga/cli/action/tax_dist.rb +8 -4
  37. data/lib/miga/cli/action/tax_index.rb +3 -4
  38. data/lib/miga/cli/action/tax_set.rb +7 -6
  39. data/lib/miga/cli/action/tax_test.rb +6 -5
  40. data/lib/miga/cli/action/wf.rb +21 -19
  41. data/lib/miga/cli/base.rb +34 -32
  42. data/lib/miga/cli/objects_helper.rb +24 -17
  43. data/lib/miga/cli/opt_helper.rb +3 -2
  44. data/lib/miga/common.rb +2 -5
  45. data/lib/miga/common/base.rb +15 -16
  46. data/lib/miga/common/format.rb +8 -5
  47. data/lib/miga/common/hooks.rb +1 -4
  48. data/lib/miga/common/path.rb +4 -9
  49. data/lib/miga/common/with_daemon.rb +5 -2
  50. data/lib/miga/common/with_daemon_class.rb +1 -1
  51. data/lib/miga/common/with_result.rb +2 -1
  52. data/lib/miga/daemon.rb +51 -35
  53. data/lib/miga/daemon/base.rb +0 -2
  54. data/lib/miga/dataset.rb +47 -37
  55. data/lib/miga/dataset/base.rb +52 -37
  56. data/lib/miga/dataset/hooks.rb +3 -4
  57. data/lib/miga/dataset/result.rb +17 -1
  58. data/lib/miga/json.rb +5 -7
  59. data/lib/miga/lair.rb +4 -0
  60. data/lib/miga/metadata.rb +4 -3
  61. data/lib/miga/project.rb +29 -20
  62. data/lib/miga/project/base.rb +52 -37
  63. data/lib/miga/project/dataset.rb +27 -13
  64. data/lib/miga/project/hooks.rb +0 -3
  65. data/lib/miga/project/result.rb +14 -5
  66. data/lib/miga/remote_dataset.rb +85 -72
  67. data/lib/miga/remote_dataset/base.rb +11 -13
  68. data/lib/miga/remote_dataset/download.rb +33 -12
  69. data/lib/miga/result.rb +34 -25
  70. data/lib/miga/result/base.rb +0 -2
  71. data/lib/miga/result/dates.rb +1 -3
  72. data/lib/miga/result/source.rb +15 -16
  73. data/lib/miga/result/stats.rb +36 -25
  74. data/lib/miga/tax_dist.rb +6 -3
  75. data/lib/miga/tax_index.rb +17 -17
  76. data/lib/miga/taxonomy.rb +6 -1
  77. data/lib/miga/taxonomy/base.rb +19 -15
  78. data/lib/miga/version.rb +19 -16
  79. data/test/common_test.rb +3 -11
  80. data/test/daemon_helper.rb +38 -0
  81. data/test/daemon_test.rb +73 -101
  82. data/test/dataset_test.rb +58 -59
  83. data/test/format_test.rb +3 -11
  84. data/test/hook_test.rb +50 -55
  85. data/test/json_test.rb +7 -8
  86. data/test/lair_test.rb +22 -28
  87. data/test/metadata_test.rb +6 -14
  88. data/test/project_test.rb +33 -39
  89. data/test/remote_dataset_test.rb +20 -28
  90. data/test/result_stats_test.rb +17 -27
  91. data/test/result_test.rb +41 -34
  92. data/test/tax_dist_test.rb +0 -2
  93. data/test/tax_index_test.rb +4 -10
  94. data/test/taxonomy_test.rb +7 -9
  95. data/test/test_helper.rb +42 -1
  96. data/test/with_daemon_test.rb +14 -22
  97. data/utils/cleanup-databases.rb +6 -5
  98. data/utils/distance/base.rb +0 -1
  99. data/utils/distance/commands.rb +19 -12
  100. data/utils/distance/database.rb +24 -21
  101. data/utils/distance/pipeline.rb +12 -9
  102. data/utils/distance/runner.rb +14 -13
  103. data/utils/distance/temporal.rb +1 -3
  104. data/utils/distances.rb +1 -1
  105. data/utils/domain-ess-genes.rb +7 -7
  106. data/utils/index_metadata.rb +4 -2
  107. data/utils/mytaxa_scan.rb +18 -16
  108. data/utils/representatives.rb +5 -4
  109. data/utils/requirements.txt +1 -1
  110. data/utils/subclade/base.rb +0 -1
  111. data/utils/subclade/pipeline.rb +7 -6
  112. data/utils/subclade/runner.rb +9 -9
  113. data/utils/subclade/temporal.rb +0 -2
  114. data/utils/subclades-compile.rb +39 -37
  115. data/utils/subclades.rb +1 -1
  116. metadata +3 -2
@@ -2,19 +2,11 @@ require 'test_helper'
2
2
  require 'miga/metadata'
3
3
 
4
4
  class MetadataTest < Test::Unit::TestCase
5
-
6
- def setup
7
- $tmp = Dir.mktmpdir
8
- $jruby_tests = !ENV['JRUBY_TESTS'].nil?
9
- end
10
-
11
- def teardown
12
- FileUtils.rm_rf $tmp
13
- end
5
+ include TestHelper
14
6
 
15
7
  def test_save
16
- omit_if($jruby_tests, 'JRuby doesn\'t implement fork.')
17
- md1 = MiGA::Metadata.new(File.expand_path('md_save.json', $tmp))
8
+ declare_forks
9
+ md1 = MiGA::Metadata.new(tmpfile('md_save.json'))
18
10
  FileUtils.touch(md1.lock_file)
19
11
  fork do
20
12
  sleep(1)
@@ -28,9 +20,10 @@ class MetadataTest < Test::Unit::TestCase
28
20
  end
29
21
 
30
22
  def test_load
31
- md1 = MiGA::Metadata.new(File.expand_path('md_load.json', $tmp), {t: 1})
23
+ md1 = MiGA::Metadata.new(tmpfile('md_load.json'), { t: 1 })
32
24
  assert_equal(1, md1[:t])
33
- omit_if($jruby_tests, 'JRuby doesn\'t implement fork.')
25
+
26
+ declare_forks
34
27
  FileUtils.touch(md1.lock_file)
35
28
  fork do
36
29
  sleep(1)
@@ -44,5 +37,4 @@ class MetadataTest < Test::Unit::TestCase
44
37
  assert_path_not_exist(md1.lock_file)
45
38
  assert_ge(t2 - t1, 1.0)
46
39
  end
47
-
48
40
  end
data/test/project_test.rb CHANGED
@@ -2,17 +2,10 @@ require 'test_helper'
2
2
  require 'miga/project'
3
3
 
4
4
  class ProjectTest < Test::Unit::TestCase
5
- def setup
6
- $tmp = Dir.mktmpdir
7
- ENV['MIGA_HOME'] = $tmp
8
- FileUtils.touch(File.expand_path('.miga_rc', ENV['MIGA_HOME']))
9
- FileUtils.touch(File.expand_path('.miga_daemon.json', ENV['MIGA_HOME']))
10
- $p1 = MiGA::Project.new(File.expand_path('project1', $tmp))
11
- end
5
+ include TestHelper
12
6
 
13
- def teardown
14
- FileUtils.rm_rf $tmp
15
- ENV['MIGA_HOME'] = nil
7
+ def setup
8
+ initialize_miga_home
16
9
  end
17
10
 
18
11
  def create_result_files(project, res, exts)
@@ -22,28 +15,26 @@ class ProjectTest < Test::Unit::TestCase
22
15
  project.add_result(res),
23
16
  "Premature registration of result #{res} at extension #{x}"
24
17
  )
25
- FileUtils.touch(File.join(project.path, "data/#{d}/miga-project#{x}"))
18
+ FileUtils.touch(File.join(project.path, 'data', d, "miga-project#{x}"))
26
19
  end
27
20
  end
28
21
 
29
22
  def test_class_load
30
- assert_nil(MiGA::Project.load($tmp + '/O_o'))
31
- assert_equal(MiGA::Project, MiGA::Project.load($p1.path).class)
23
+ assert_nil(MiGA::Project.load(tmpfile('O_o')))
24
+ assert_instance_of(MiGA::Project, MiGA::Project.load(project.path))
32
25
  end
33
26
 
34
27
  def test_create
35
- assert_equal("#{$tmp}/create", MiGA::Project.new("#{$tmp}/create").path)
36
- assert_path_exist("#{$tmp}/create")
28
+ assert_equal(tmpfile('create'), project('create').path)
29
+ assert_path_exist(tmpfile('create'))
37
30
  assert_raise do
38
- ENV['MIGA_HOME'] = $tmp + '/chez-moi'
39
- MiGA::Project.new($tmp + '/cuckoo')
31
+ ENV['MIGA_HOME'] = tmpfile('chez-moi')
32
+ project('cuckoo')
40
33
  end
41
- ensure
42
- ENV['MIGA_HOME'] = $tmp
43
34
  end
44
35
 
45
36
  def test_load
46
- p = MiGA::Project.new($tmp + '/load')
37
+ p = project('load')
47
38
  assert_equal(MiGA::Project, p.class)
48
39
  File.unlink p.metadata.path
49
40
  assert_raise do
@@ -52,8 +43,8 @@ class ProjectTest < Test::Unit::TestCase
52
43
  end
53
44
 
54
45
  def test_datasets
55
- p = $p1
56
- d = p.add_dataset('d1')
46
+ p = project
47
+ d = dataset(0, 'd1')
57
48
  assert_equal(MiGA::Dataset, d.class)
58
49
  assert_equal([d], p.datasets)
59
50
  assert_equal(['d1'], p.dataset_names)
@@ -65,55 +56,58 @@ class ProjectTest < Test::Unit::TestCase
65
56
  end
66
57
 
67
58
  def test_import_dataset
68
- p1 = $p1
59
+ p1 = project
69
60
  d = p1.add_dataset('d1')
70
61
  File.open(
71
- "#{p1.path}/data/01.raw_reads/#{d.name}.1.fastq", 'w'
62
+ File.join(p1.path, 'data', '01.raw_reads', "#{d.name}.1.fastq"), 'w'
72
63
  ) { |f| f.puts ':-)' }
73
64
  File.open(
74
- "#{p1.path}/data/01.raw_reads/#{d.name}.done", 'w'
65
+ File.join(p1.path, 'data', '01.raw_reads', "#{d.name}.done"), 'w'
75
66
  ) { |f| f.puts ':-)' }
76
67
  d.next_preprocessing(true)
77
- p2 = MiGA::Project.new(File.expand_path('import_dataset', $tmp))
68
+ p2 = project('import_dataset')
78
69
  assert_empty(p2.datasets)
79
70
  assert_nil(p2.dataset('d1'))
80
71
  p2.import_dataset(d)
81
72
  assert_equal(1, p2.datasets.size)
82
73
  assert_equal(MiGA::Dataset, p2.dataset('d1').class)
83
74
  assert_equal(1, p2.dataset('d1').results.size)
84
- assert_path_exist(File.join(p2.path, "data/01.raw_reads/#{d.name}.1.fastq"))
85
- assert_path_exist(File.join(p2.path, "metadata/#{d.name}.json"))
75
+ assert_path_exist(
76
+ File.join(p2.path, 'data', '01.raw_reads', "#{d.name}.1.fastq")
77
+ )
78
+ assert_path_exist(File.join(p2.path, 'metadata', "#{d.name}.json"))
86
79
  end
87
80
 
88
81
  def test_add_result
89
- p1 = $p1
82
+ p1 = project
90
83
  assert_nil(p1.add_result(:doom))
91
84
  %w[.Rdata .log .txt .done].each do |x|
92
85
  assert_nil(p1.add_result(:haai_distances))
93
86
  FileUtils.touch(
94
- File.join(p1.path, "data/09.distances/01.haai/miga-project#{x}")
87
+ File.join(
88
+ p1.path, 'data', '09.distances', '01.haai', "miga-project#{x}"
89
+ )
95
90
  )
96
91
  end
97
92
  assert_equal(MiGA::Result, p1.add_result(:haai_distances).class)
98
93
  end
99
94
 
100
95
  def test_result
101
- p1 = $p1
96
+ p1 = project
102
97
  assert_nil(p1.result(:n00b))
103
98
  assert_nil(p1.result(:project_stats))
104
- File.open(
105
- File.expand_path('data/90.stats/miga-project.json', p1.path), 'w'
106
- ) { |fh| fh.puts '{}' }
99
+ json = File.join(p1.path, 'data', '90.stats', 'miga-project.json')
100
+ File.open(json, 'w') { |fh| fh.puts '{}' }
107
101
  assert_not_nil(p1.result(:project_stats))
108
102
  assert_equal(1, p1.results.size)
109
103
  end
110
104
 
111
105
  def test_preprocessing
112
- p1 = $p1
106
+ p1 = project
113
107
  assert_predicate(p1, :done_preprocessing?)
114
108
  d1 = p1.add_dataset('BAH')
115
109
  assert_not_predicate(p1, :done_preprocessing?)
116
- FileUtils.touch(File.expand_path("data/90.stats/#{d1.name}.done", p1.path))
110
+ FileUtils.touch(File.join(p1.path, 'data', '90.stats', "#{d1.name}.done"))
117
111
  assert_predicate(p1, :done_preprocessing?)
118
112
  assert_nil(p1.next_inclade)
119
113
  p1.metadata[:type] = :clade
@@ -126,7 +120,7 @@ class ProjectTest < Test::Unit::TestCase
126
120
  aai_distances: %w[.Rdata .log .txt],
127
121
  ani_distances: %w[.Rdata .log .txt],
128
122
  clade_finding: %w[.pdf .classif .medoids
129
- .class.tsv .class.nwk .proposed-clades],
123
+ .class.tsv .class.nwk .proposed-clades],
130
124
  subclades: %w[.pdf .classif .medoids .class.tsv .class.nwk],
131
125
  ogs: %w[.ogs .stats]
132
126
  }
@@ -140,7 +134,7 @@ class ProjectTest < Test::Unit::TestCase
140
134
  end
141
135
 
142
136
  def test_empty_results
143
- p1 = $p1
137
+ p1 = project
144
138
  p1.metadata[:type] = :clade
145
139
  %i[clade_finding subclades ogs].each do |r|
146
140
  assert_nil(p1.add_result(r), "Unexpected result exists: #{r}")
@@ -150,7 +144,7 @@ class ProjectTest < Test::Unit::TestCase
150
144
  end
151
145
 
152
146
  def test_force_result
153
- p1 = $p1
147
+ p1 = project
154
148
  create_result_files(p1, :ogs, %w[.empty])
155
149
  date1 = p1.add_result(:ogs)[:created]
156
150
  sleep(1)
@@ -3,19 +3,10 @@ require 'miga/project'
3
3
  require 'miga/remote_dataset'
4
4
 
5
5
  class RemoteDatasetTest < Test::Unit::TestCase
6
+ include TestHelper
6
7
 
7
8
  def setup
8
- $tmp = Dir.mktmpdir
9
- ENV['MIGA_HOME'] = $tmp
10
- FileUtils.touch(File.expand_path('.miga_rc', ENV["MIGA_HOME"]))
11
- FileUtils.touch(File.expand_path('.miga_daemon.json', ENV["MIGA_HOME"]))
12
- $p1 = MiGA::Project.new(File.expand_path('project1', $tmp))
13
- $remote_tests = !ENV['REMOTE_TESTS'].nil?
14
- end
15
-
16
- def teardown
17
- FileUtils.rm_rf $tmp
18
- ENV['MIGA_HOME'] = nil
9
+ initialize_miga_home
19
10
  end
20
11
 
21
12
  def test_class_universe
@@ -33,7 +24,8 @@ class RemoteDatasetTest < Test::Unit::TestCase
33
24
  { embl: :ebi, nuccore: :ncbi }.each do |db, universe|
34
25
  rd = MiGA::RemoteDataset.new(hiv2, db, universe)
35
26
  assert_equal([hiv2], rd.ids)
36
- omit_if(!$remote_tests, 'Remote access is error-prone')
27
+
28
+ declare_remote_access
37
29
  tx = rd.get_ncbi_taxonomy
38
30
  msg = "Failed on #{universe}:#{db}"
39
31
  assert_equal(MiGA::Taxonomy, tx.class, msg)
@@ -57,8 +49,9 @@ class RemoteDatasetTest < Test::Unit::TestCase
57
49
  n = 'Cjac_L14'
58
50
  rd = MiGA::RemoteDataset.new(cjac, :assembly_gz, :web)
59
51
  assert_equal([cjac], rd.ids)
60
- omit_if(!$remote_tests, 'Remote access is error-prone')
61
- p = $p1
52
+
53
+ declare_remote_access
54
+ p = project
62
55
  assert_nil(p.dataset(n))
63
56
  rd.save_to(p, n)
64
57
  p.add_dataset(n)
@@ -67,7 +60,7 @@ class RemoteDatasetTest < Test::Unit::TestCase
67
60
  end
68
61
 
69
62
  def test_asm_acc2id
70
- omit_if(!$remote_tests, 'Remote access is error-prone')
63
+ declare_remote_access
71
64
  assert_nil(MiGA::RemoteDataset.ncbi_asm_acc2id('NotAnAccession'))
72
65
  id = MiGA::RemoteDataset.ncbi_asm_acc2id('GCA_004684205.1')
73
66
  assert_equal('2514661', id)
@@ -75,9 +68,9 @@ class RemoteDatasetTest < Test::Unit::TestCase
75
68
  end
76
69
 
77
70
  def test_update_metadata
78
- omit_if(!$remote_tests, 'Remote access is error-prone')
71
+ declare_remote_access
79
72
  hiv1 = 'GCF_000856385.1'
80
- d1 = MiGA::Dataset.new($p1, 'd1')
73
+ d1 = MiGA::Dataset.new(project, 'd1')
81
74
  assert_nil(d1.metadata[:ncbi_assembly])
82
75
  rd = MiGA::RemoteDataset.new(hiv1, :assembly, :ncbi)
83
76
  rd.update_metadata(d1, passthrough: 123, metadata_only: true)
@@ -87,36 +80,35 @@ class RemoteDatasetTest < Test::Unit::TestCase
87
80
  end
88
81
 
89
82
  def test_type_status_asm
90
- omit_if(!$remote_tests, 'Remote access is error-prone')
83
+ declare_remote_access
91
84
  rd = MiGA::RemoteDataset.new('GCF_000018105.1', :assembly, :ncbi)
92
85
  assert { rd.get_metadata[:is_type] }
93
86
  end
94
87
 
95
88
  def test_nontype_status_asm
96
- omit_if(!$remote_tests, 'Remote access is error-prone')
89
+ declare_remote_access
97
90
  rd = MiGA::RemoteDataset.new('GCA_004684205.1', :assembly, :ncbi)
98
91
  assert { !rd.get_metadata[:is_type] }
99
92
  end
100
93
 
101
94
  def test_type_status_nuccore
102
- omit_if(!$remote_tests, 'Remote access is error-prone')
95
+ declare_remote_access
103
96
  rd = MiGA::RemoteDataset.new('NC_019748.1', :nuccore, :ncbi)
104
97
  assert { rd.get_metadata[:is_type] }
105
98
  end
106
99
 
107
100
  def test_ref_type_status
108
- omit_if(!$remote_tests, 'Remote access is error-prone')
101
+ declare_remote_access
109
102
  rd = MiGA::RemoteDataset.new('GCA_002849345', :assembly, :ncbi)
110
103
  assert { !rd.get_metadata[:is_type] }
111
104
  assert { rd.get_metadata[:is_ref_type] }
112
105
  end
113
106
 
114
107
  # This test is too expensive (too much time to run it!)
115
- #def test_net_timeout
116
- # omit_if(!$remote_tests, "Remote access is error-prone")
117
- # bad = "ftp://example.com/miga"
118
- # rd = MiGA::RemoteDataset.new(bad, :assembly, :web)
119
- # assert_raise(Net::ReadTimeout) { rd.save_to($p1, "bad") }
120
- #end
121
-
108
+ # def test_net_timeout
109
+ # declare_remote_access
110
+ # bad = "ftp://example.com/miga"
111
+ # rd = MiGA::RemoteDataset.new(bad, :assembly, :web)
112
+ # assert_raise(Net::ReadTimeout) { rd.save_to(project, "bad") }
113
+ # end
122
114
  end
@@ -3,23 +3,14 @@ require 'miga/project'
3
3
  require 'zlib'
4
4
 
5
5
  class ResultStatsTest < Test::Unit::TestCase
6
+ include TestHelper
6
7
 
7
8
  def setup
8
- $tmp = Dir.mktmpdir
9
- ENV['MIGA_HOME'] = $tmp
10
- FileUtils.touch(File.expand_path('.miga_rc', ENV['MIGA_HOME']))
11
- FileUtils.touch(File.expand_path('.miga_daemon.json', ENV['MIGA_HOME']))
12
- $p = MiGA::Project.new(File.expand_path('project1', $tmp))
13
- $d = $p.add_dataset('dataset1')
14
- end
15
-
16
- def teardown
17
- FileUtils.rm_rf $tmp
18
- ENV['MIGA_HOME'] = nil
9
+ initialize_miga_home
19
10
  end
20
11
 
21
12
  def file_path(dir, ext)
22
- File.join($p.path, dir, "#{$d.name}#{ext}")
13
+ File.join(project.path, dir, "#{dataset.name}#{ext}")
23
14
  end
24
15
 
25
16
  def touch_done(dir)
@@ -29,9 +20,9 @@ class ResultStatsTest < Test::Unit::TestCase
29
20
  def test_single_raw_reads
30
21
  dir = 'data/01.raw_reads'
31
22
  fq = file_path(dir, '.1.fastq')
32
- File.open(fq, 'w') { |fh| fh.puts '@1','ACTAC','+','####' }
23
+ File.open(fq, 'w') { |fh| fh.puts '@1', 'ACTAC', '+', '####' }
33
24
  touch_done(dir)
34
- r = $d.add_result(:raw_reads)
25
+ r = dataset.add_result(:raw_reads)
35
26
  assert_equal({}, r[:stats])
36
27
  r.compute_stats
37
28
  assert_not_empty(r[:stats])
@@ -43,11 +34,11 @@ class ResultStatsTest < Test::Unit::TestCase
43
34
  def test_coupled_raw_reads
44
35
  dir = 'data/01.raw_reads'
45
36
  fq = file_path(dir, '.1.fastq')
46
- File.open(fq, 'w') { |fh| fh.puts '@1','ACTAC','+','####' }
37
+ File.open(fq, 'w') { |fh| fh.puts '@1', 'ACTAC', '+', '####' }
47
38
  fq = file_path(dir, '.2.fastq')
48
- File.open(fq, 'w') { |fh| fh.puts '@1','ACTAC','+','####' }
39
+ File.open(fq, 'w') { |fh| fh.puts '@1', 'ACTAC', '+', '####' }
49
40
  touch_done(dir)
50
- r = $d.add_result(:raw_reads)
41
+ r = dataset.add_result(:raw_reads)
51
42
  r.compute_stats
52
43
  assert_not_empty(r[:stats])
53
44
  assert_nil(r[:stats][:reads])
@@ -59,7 +50,7 @@ class ResultStatsTest < Test::Unit::TestCase
59
50
  dir = 'data/02.trimmed_reads'
60
51
  FileUtils.touch(file_path(dir, '.1.clipped.fastq'))
61
52
  touch_done(dir)
62
- r = $d.add_result(:trimmed_reads)
53
+ r = dataset.add_result(:trimmed_reads)
63
54
  assert_equal({}, r[:stats])
64
55
  r.compute_stats
65
56
  assert_equal({}, r[:stats])
@@ -70,7 +61,7 @@ class ResultStatsTest < Test::Unit::TestCase
70
61
  Dir.mkdir(file_path(dir, '.solexaqa'))
71
62
  Dir.mkdir(file_path(dir, '.fastqc'))
72
63
  touch_done(dir)
73
- r = $d.add_result(:read_quality)
64
+ r = dataset.add_result(:read_quality)
74
65
  assert_equal({}, r[:stats])
75
66
  r.compute_stats
76
67
  assert_equal({}, r[:stats])
@@ -79,9 +70,9 @@ class ResultStatsTest < Test::Unit::TestCase
79
70
  def test_trimmed_fasta
80
71
  dir = 'data/04.trimmed_fasta'
81
72
  fa = file_path(dir, '.CoupledReads.fa')
82
- File.open(fa, 'w') { |fh| fh.puts '>1','ACTAC' }
73
+ File.open(fa, 'w') { |fh| fh.puts '>1', 'ACTAC' }
83
74
  touch_done(dir)
84
- r = $d.add_result(:trimmed_fasta)
75
+ r = dataset.add_result(:trimmed_fasta)
85
76
  assert_equal({}, r[:stats])
86
77
  r.compute_stats
87
78
  assert_equal(1, r[:stats][:reads])
@@ -92,9 +83,9 @@ class ResultStatsTest < Test::Unit::TestCase
92
83
  # Prepare result
93
84
  dir = 'data/05.assembly'
94
85
  fa = file_path(dir, '.LargeContigs.fna')
95
- File.open(fa, 'w') { |fh| fh.puts '>1','ACTAC' }
86
+ File.open(fa, 'w') { |fh| fh.puts '>1', 'ACTAC' }
96
87
  touch_done(dir)
97
- r = $d.add_result(:assembly)
88
+ r = dataset.add_result(:assembly)
98
89
 
99
90
  # Test assertions
100
91
  assert_equal({}, r[:stats])
@@ -108,13 +99,13 @@ class ResultStatsTest < Test::Unit::TestCase
108
99
  # Prepare result
109
100
  dir = 'data/06.cds'
110
101
  fa = file_path(dir, '.faa')
111
- File.open(fa, 'w') { |fh| fh.puts '>1','M' }
102
+ File.open(fa, 'w') { |fh| fh.puts '>1', 'M' }
112
103
  gff = file_path(dir, '.gff3.gz')
113
104
  Zlib::GzipWriter.open(gff) do |fh|
114
105
  fh.puts '# Model Data: a=b;transl_table=11;'
115
106
  end
116
107
  touch_done(dir)
117
- r = $d.add_result(:cds)
108
+ r = dataset.add_result(:cds)
118
109
 
119
110
  # Test assertions
120
111
  assert_equal({}, r[:stats])
@@ -139,7 +130,7 @@ class ResultStatsTest < Test::Unit::TestCase
139
130
  fh.puts ' phylum Abc 0.0 **** '
140
131
  end
141
132
  touch_done(dir)
142
- r = $d.add_result(:taxonomy)
133
+ r = dataset.add_result(:taxonomy)
143
134
 
144
135
  # Test assertions
145
136
  assert_nil(r[:stats][:closest_relative])
@@ -148,5 +139,4 @@ class ResultStatsTest < Test::Unit::TestCase
148
139
  assert_equal([100.0, '%'], r[:stats][:aai])
149
140
  assert_equal(0.0, r[:stats][:phylum_pvalue])
150
141
  end
151
-
152
142
  end
data/test/result_test.rb CHANGED
@@ -2,62 +2,69 @@ require 'test_helper'
2
2
  require 'miga/project'
3
3
 
4
4
  class ResultTest < Test::Unit::TestCase
5
+ include TestHelper
5
6
 
6
7
  def setup
7
- $tmp = Dir.mktmpdir
8
- ENV['MIGA_HOME'] = $tmp
9
- FileUtils.touch(File.expand_path('.miga_rc', ENV['MIGA_HOME']))
10
- FileUtils.touch(File.expand_path('.miga_daemon.json', ENV['MIGA_HOME']))
11
- $p1 = MiGA::Project.new(File.expand_path('project1', $tmp))
12
- $d1 = $p1.add_dataset('dataset1')
8
+ initialize_miga_home
13
9
  FileUtils.touch(
14
- File.join($p1.path, "data/02.trimmed_reads/#{$d1.name}.1.clipped.fastq"))
10
+ File.join(
11
+ project.path, 'data', '02.trimmed_reads',
12
+ "#{dataset.name}.1.clipped.fastq"
13
+ )
14
+ )
15
15
  FileUtils.touch(
16
- File.join($p1.path, "data/02.trimmed_reads/#{$d1.name}.done"))
16
+ File.join(
17
+ project.path, 'data', '02.trimmed_reads', "#{dataset.name}.done"
18
+ )
19
+ )
17
20
  FileUtils.touch(
18
- File.join($p1.path, 'data/10.clades/01.find/miga-project.empty'))
21
+ File.join(
22
+ project.path, 'data', '10.clades', '01.find', 'miga-project.empty'
23
+ )
24
+ )
19
25
  FileUtils.touch(
20
- File.join($p1.path, 'data/10.clades/01.find/miga-project.done'))
21
- end
22
-
23
- def teardown
24
- FileUtils.rm_rf $tmp
25
- ENV['MIGA_HOME'] = nil
26
+ File.join(
27
+ project.path, 'data', '10.clades', '01.find', 'miga-project.done'
28
+ )
29
+ )
26
30
  end
27
31
 
28
32
  def test_add_result
29
- r = $d1.add_result(:trimmed_reads)
30
- assert_equal(MiGA::Result, r.class)
31
- r = $d1.add_result(:asssembly)
33
+ r = dataset.add_result(:trimmed_reads)
34
+ assert_instance_of(MiGA::Result, r)
35
+ r = dataset.add_result(:asssembly)
32
36
  assert_nil(r)
33
- r = $p1.add_result(:clade_finding)
34
- assert_equal(MiGA::Result, r.class)
37
+ r = project.add_result(:clade_finding)
38
+ assert_instance_of(MiGA::Result, r)
35
39
  end
36
40
 
37
41
  def test_result_source
38
- r = $d1.add_result(:trimmed_reads)
39
- assert_equal($d1.name, r.source.name)
42
+ r = dataset.add_result(:trimmed_reads)
43
+ assert_equal(dataset.name, r.source.name)
40
44
  assert_equal(:trimmed_reads, r.key)
41
45
  assert_equal('data/02.trimmed_reads', r.relative_dir)
42
- assert_equal('data/02.trimmed_reads/dataset1.json', r.relative_path)
43
- assert_equal($p1.path, r.project.path)
44
- assert_equal($p1.path, r.project_path)
45
- r = $p1.add_result(:clade_finding)
46
- assert_equal($p1.path, r.source.path)
46
+ assert_equal('data/02.trimmed_reads/dataset0.json', r.relative_path)
47
+ assert_equal(project.path, r.project.path)
48
+ assert_equal(project.path, r.project_path)
49
+ r = project.add_result(:clade_finding)
50
+ assert_equal(project.path, r.source.path)
47
51
  end
48
52
 
49
53
  def test_dates
50
- r = $d1.add_result(:trimmed_reads)
54
+ r = dataset.add_result(:trimmed_reads)
51
55
  assert_nil(r.done_at)
52
56
  assert_nil(r.started_at)
53
- tf = File.join($p1.path, "data/02.trimmed_reads/#{$d1.name}.done")
54
- File.open(tf, 'w') { |fh| fh.puts Time.new(1,2,3,4,5) }
57
+ tf = File.join(
58
+ project.path, 'data', '02.trimmed_reads', "#{dataset.name}.done"
59
+ )
60
+ File.open(tf, 'w') { |fh| fh.puts Time.new(1, 2, 3, 4, 5) }
55
61
  assert_equal(Time, r.done_at.class)
56
62
  assert_nil(r.running_time)
57
- tf = File.join($p1.path, "data/02.trimmed_reads/#{$d1.name}.start")
58
- File.open(tf, 'w') { |fh| fh.puts Time.new(1,2,3,4,0) }
59
- r = $d1.add_result(:trimmed_reads)
63
+ tf = File.join(
64
+ project.path, 'data', '02.trimmed_reads', "#{dataset.name}.start"
65
+ )
66
+ File.open(tf, 'w') { |fh| fh.puts Time.new(1, 2, 3, 4, 0) }
67
+ r = dataset.add_result(:trimmed_reads)
60
68
  assert_equal(5.0, r.running_time)
61
69
  end
62
-
63
70
  end