typingpool 0.8.0 → 0.8.1

Sign up to get free protection for your applications and to get access to all the features.
data/bin/tp-make CHANGED
@@ -71,6 +71,11 @@ OptionParser.new do |opts|
71
71
  options[:bitrate] = kbps
72
72
  end
73
73
 
74
+ opts.on('--devtest',
75
+ 'Runs in a special development mode. Ignore.') do
76
+ options[:devtest] = true
77
+ end
78
+
74
79
  opts.on('--help',
75
80
  'Display this screen.') do
76
81
  puts opts
@@ -136,6 +141,7 @@ else
136
141
  converted_files = project.local.subdir('audio', 'originals').as(:audio).to_mp3(temp_conversion_dir, project.bitrate) do |file|
137
142
  STDERR.puts "Converting #{File.basename(file) } to mp3"
138
143
  end
144
+ converted_files = Typingpool::Filer::Files::Audio.new(converted_files.sort{|a,b| a.path <=> b.path})
139
145
 
140
146
  STDERR.puts "Merging audio" if converted_files.count > 1
141
147
  temp_merge_file = Tempfile.new(["#{project.name}.all.", ".mp3"])
@@ -151,6 +157,9 @@ else
151
157
  assignment_path = project.create_assignment_csv(:path => ['data', 'assignment.csv'], :urls => urls, :unusual => options[:unusual], :voices => options[:voices])
152
158
 
153
159
  temp_merge_file.close
160
+ if options[:devtest]
161
+ FileUtils.cp(temp_merge_file.path, project.local.subdir('audio', 'originals'))
162
+ end
154
163
  temp_merge_file.unlink
155
164
  FileUtils.remove_entry_secure(temp_conversion_dir)
156
165
  end #if project.local
@@ -83,7 +83,7 @@ module Typingpool
83
83
  end
84
84
 
85
85
  def call_tp_make(*args)
86
- call_script(path_to_tp_make, *args)
86
+ call_script(path_to_tp_make, *args, '--devtest')
87
87
  end
88
88
 
89
89
  def tp_make(in_dir, config=config_path(in_dir), audio_subdir='mp3')
@@ -1,3 +1,3 @@
1
1
  module Typingpool
2
- VERSION = '0.8.0'
2
+ VERSION = '0.8.1'
3
3
  end #Typingpool
@@ -5,6 +5,7 @@ $:.unshift File.join(File.dirname(File.dirname($0)), 'lib')
5
5
  require 'typingpool'
6
6
  require 'typingpool/test'
7
7
  require 'csv'
8
+ require 'open3'
8
9
 
9
10
  class TestTpMake < Typingpool::Test::Script
10
11
  def test_abort_with_no_files
@@ -118,4 +119,30 @@ class TestTpMake < Typingpool::Test::Script
118
119
  end #in_temp_tp_dir do...
119
120
  end
120
121
 
122
+ def test_audio_files_sorted_correctly
123
+ in_temp_tp_dir do |dir|
124
+ config_path = self.config_path(dir)
125
+ skip_if_no_upload_credentials('tp-make audio file sorting test', Typingpool::Config.file(config_path))
126
+ assert(audio_files('mp3').count > 1)
127
+ correctly_ordered_paths = audio_files('mp3').sort
128
+ tp_make_with(dir, config_path, 'mp3')
129
+ assert(project = temp_tp_dir_project(dir))
130
+ assert(merged_audio_file = project.local.subdir('audio','originals').files.detect{|filer| filer.path.match(/.\.all\../)})
131
+ assert(File.exists? merged_audio_file)
132
+ actually_ordered_paths = originals_from_merged_audio_file(merged_audio_file)
133
+ assert_equal(correctly_ordered_paths.map{|path| File.basename(path) }, actually_ordered_paths.map{|path| File.basename(path) })
134
+ end #in_temp_tp_dir
135
+ end
136
+
137
+ def originals_from_merged_audio_file(path)
138
+ out, err, status = Open3.capture3('mp3splt', '-l', path)
139
+ refute_nil(out)
140
+ refute_empty(out)
141
+ paths = out.scan(/^\/.+\.mp3$/i)
142
+ refute_empty(paths)
143
+ assert(paths.count > 1)
144
+ paths.each{|path| assert(File.exists? path) }
145
+ paths
146
+ end
147
+
121
148
  end #TestTpMake
@@ -64,7 +64,7 @@ class TestProjectRemote < Typingpool::Test
64
64
  standard_put_remove_tests(remote)
65
65
  assert(s3.buckets[config.amazon.bucket].exists?)
66
66
  ensure
67
- s3.buckets[config.amazon.bucket].delete
67
+ s3.buckets[config.amazon.bucket].delete rescue AWS::S3::Errors::NoSuchBucket
68
68
  end #begin
69
69
  end
70
70
 
@@ -101,6 +101,7 @@ class TestProjectRemote < Typingpool::Test
101
101
  :test_with => lambda{|urls| urls.each_with_index{|url, i| assert_includes(url, basenames[i]) } }
102
102
  )
103
103
 
104
+ sleep 5
104
105
  #now with different basenames
105
106
  remote_basenames = basenames.map{|name| [File.basename(name, '.*'), pseudo_random_chars, File.extname(name)].join }
106
107
  base_args = {
@@ -115,6 +116,7 @@ class TestProjectRemote < Typingpool::Test
115
116
  )
116
117
  )
117
118
 
119
+ sleep 5
118
120
  #now using remove_urls for removal
119
121
  put_remove_test(
120
122
  base_args.merge(
@@ -123,6 +125,7 @@ class TestProjectRemote < Typingpool::Test
123
125
  )
124
126
  )
125
127
 
128
+ sleep 5
126
129
  #now with stringio streams
127
130
  put_remove_test(
128
131
  base_args.merge(
@@ -161,12 +164,13 @@ class TestProjectRemote < Typingpool::Test
161
164
  assert(urls = args[:remote].put(*put_args))
162
165
  begin
163
166
  assert_equal(args[:streams].count, urls.count)
164
- sleep 4
167
+ sleep 10
165
168
  urls.each{|url| assert(working_url?(url)) }
166
169
  args[:test_with].call(urls) if args[:test_with]
167
170
  ensure
168
171
  args[:remove_with].call(urls)
169
172
  end #begin
173
+ sleep 10
170
174
  urls.each{|url| refute(working_url?(url)) }
171
175
  urls
172
176
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: typingpool
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.8.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-09 00:00:00.000000000 Z
12
+ date: 2013-06-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rturk