content_server 1.5.0 → 1.6.0
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 +15 -0
- data/bin/file_utils +118 -0
- data/lib/content_data/content_data.rb +114 -48
- data/lib/content_server/version.rb +1 -1
- data/lib/file_monitoring/file_monitoring.rb +94 -50
- data/lib/file_monitoring/monitor_path.rb +196 -113
- data/lib/file_utils/file_utils.rb +10 -49
- data/lib/networking/tcp.rb +4 -4
- data/spec/content_data/content_data_spec.rb +331 -0
- data/spec/content_data/validations_spec.rb +5 -0
- data/spec/content_server/content_server_spec.rb +5 -0
- data/spec/content_server/file_streamer_spec.rb +5 -0
- data/spec/file_copy/copy_spec.rb +5 -0
- data/spec/file_indexing/index_agent_spec.rb +5 -0
- data/spec/networking/tcp_spec.rb +5 -0
- data/spec/validations/index_validations_spec.rb +5 -0
- metadata +9 -89
- data/test/content_data/content_data_test.rb +0 -291
- data/test/file_generator/file_generator_spec.rb +0 -85
- data/test/file_monitoring/monitor_path_test.rb +0 -189
- data/test/file_monitoring/monitor_path_test/dir1000/test_file.1000 +0 -1000
- data/test/file_monitoring/monitor_path_test/dir1000/test_file.1000.0 +0 -1000
- data/test/file_monitoring/monitor_path_test/dir1000/test_file.1000.1 +0 -1000
- data/test/file_monitoring/monitor_path_test/dir1500/test_file.1500 +0 -1500
- data/test/file_monitoring/monitor_path_test/dir1500/test_file.1500.0 +0 -1500
- data/test/file_monitoring/monitor_path_test/dir1500/test_file.1500.1 +0 -1500
- data/test/file_monitoring/monitor_path_test/test_file.500 +0 -500
- data/test/file_monitoring/monitor_path_test/test_file.500.0 +0 -500
- data/test/file_monitoring/monitor_path_test/test_file.500.1 +0 -500
- data/test/file_utils/fileutil_mksymlink_test.rb +0 -134
- data/test/file_utils/fileutil_mksymlink_test/dir1000/dir1500/test_file.1500 +0 -1500
- data/test/file_utils/fileutil_mksymlink_test/dir1000/dir1500/test_file.1500.0 +0 -1500
- data/test/file_utils/fileutil_mksymlink_test/dir1000/dir1500/test_file.1500.1 +0 -1500
- data/test/file_utils/fileutil_mksymlink_test/dir1000/test_file.1000 +0 -1000
- data/test/file_utils/fileutil_mksymlink_test/dir1000/test_file.1000.0 +0 -1000
- data/test/file_utils/fileutil_mksymlink_test/dir1000/test_file.1000.1 +0 -1000
- data/test/file_utils/fileutil_mksymlink_test/test_file.500 +0 -500
- data/test/file_utils/fileutil_mksymlink_test/test_file.500.0 +0 -500
- data/test/file_utils/fileutil_mksymlink_test/test_file.500.1 +0 -500
- data/test/file_utils/time_modification_test.rb +0 -136
- data/test/params/params_spec.rb +0 -280
- data/test/params/params_test.rb +0 -43
- data/test/run_in_background/run_in_background_test.rb +0 -122
- data/test/run_in_background/test_app +0 -59
@@ -1,136 +0,0 @@
|
|
1
|
-
require 'fileutils'
|
2
|
-
require 'time'
|
3
|
-
require 'test/unit'
|
4
|
-
|
5
|
-
require 'content_data'
|
6
|
-
require 'file_indexing'
|
7
|
-
require 'file_utils'
|
8
|
-
require 'log'
|
9
|
-
require 'params'
|
10
|
-
|
11
|
-
module FileUtils
|
12
|
-
def FileUtils.parse_time time_str
|
13
|
-
return nil unless time_str.instance_of? String
|
14
|
-
seconds_from_epoch = Integer time_str # Not using to_i here because it does not check string is integer.
|
15
|
-
time = Time.at seconds_from_epoch
|
16
|
-
end
|
17
|
-
|
18
|
-
module Test
|
19
|
-
class TestTimeModification < ::Test::Unit::TestCase
|
20
|
-
# directory where tested files will be placed: __FILE__/time_modification_test
|
21
|
-
RESOURCES_DIR = File.expand_path(File.dirname(__FILE__) + "/time_modification_test")
|
22
|
-
# minimal time that will be inserted in content
|
23
|
-
MOD_TIME_CONTENTS = FileUtils.parse_time("1306527039")
|
24
|
-
# minimal time that will be inserted in instance
|
25
|
-
MOD_TIME_INSTANCES = FileUtils.parse_time("1306527039")
|
26
|
-
#time_str = "2002/02/01 02:23:59.000"
|
27
|
-
#MOD_TIME_INSTANCES = Time.strftime( time_str, '%Y/%m/%d %H:%M:%S.%L' )
|
28
|
-
DEVICE_NAME = "hd1"
|
29
|
-
|
30
|
-
@input_db
|
31
|
-
@mod_content_checksum = nil # checksum of the content that was manually modified
|
32
|
-
@mod_instance_checksum = nil # checksum of the instance that was manually modified
|
33
|
-
|
34
|
-
def setup
|
35
|
-
Params.init Array.new
|
36
|
-
# must preced Log.init, otherwise log containing default values will be created
|
37
|
-
Params['log_write_to_file'] = false
|
38
|
-
Params['log_write_to_console'] = false
|
39
|
-
Log.init
|
40
|
-
|
41
|
-
sizes = [500, 1000, 1500]
|
42
|
-
numb_of_copies = 2
|
43
|
-
test_file_name = "test_file"
|
44
|
-
|
45
|
-
Dir.mkdir(RESOURCES_DIR) unless (File.exists?(RESOURCES_DIR))
|
46
|
-
raise "Can't create writable working directory: #{RESOURCES_DIR}" unless \
|
47
|
-
(File.exists?(RESOURCES_DIR) and File.writable?(RESOURCES_DIR))
|
48
|
-
# prepare files for testing
|
49
|
-
sizes.each do |size|
|
50
|
-
file_path = "#{RESOURCES_DIR}/#{test_file_name}.#{size}"
|
51
|
-
file = File.open(file_path, "w", 0777) do |file|
|
52
|
-
content = Array.new
|
53
|
-
size.times do |i|
|
54
|
-
content.push(sprintf("%5d ", i))
|
55
|
-
end
|
56
|
-
file.puts(content)
|
57
|
-
end
|
58
|
-
File.utime File.atime(file_path), MOD_TIME_CONTENTS, file_path
|
59
|
-
numb_of_copies.times do |i|
|
60
|
-
::FileUtils.cp(file_path, "#{file_path}.#{i}")
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
indexer = FileIndexing::IndexAgent.new
|
65
|
-
patterns = FileIndexing::IndexerPatterns.new
|
66
|
-
patterns.add_pattern(RESOURCES_DIR + '\*')
|
67
|
-
indexer.index(patterns)
|
68
|
-
|
69
|
-
@input_db = indexer.indexed_content
|
70
|
-
end
|
71
|
-
|
72
|
-
# This test compares two ways of ruby + OS to get mtime (modification file) of a file.
|
73
|
-
# We can see that in Windows there is a difference.
|
74
|
-
def test_local_os
|
75
|
-
Dir.mkdir(RESOURCES_DIR) unless (File.exists?(RESOURCES_DIR))
|
76
|
-
file_path = "#{RESOURCES_DIR}/local_os_test.test"
|
77
|
-
file = File.open(file_path, "w", 0777) do |file|
|
78
|
-
file.puts("kuku")
|
79
|
-
end
|
80
|
-
file_stats = File.stat(file_path)
|
81
|
-
Log.info "MOD_TIME_CONTENTS: #{MOD_TIME_CONTENTS}."
|
82
|
-
Log.info "MOD_TIME_CONTENTS: #{MOD_TIME_CONTENTS.to_i}."
|
83
|
-
Log.info "file_stat.mtime: #{file_stats.mtime}."
|
84
|
-
Log.info "file_stat.mtime: #{file_stats.mtime.to_i}."
|
85
|
-
Log.info "File.mtime: #{File.mtime(file_path)}."
|
86
|
-
Log.info "File.mtime: #{File.mtime(file_path).to_i}."
|
87
|
-
File.utime File.atime(file_path), MOD_TIME_CONTENTS, file_path
|
88
|
-
file_stats = File.stat(file_path)
|
89
|
-
Log.info "file_stat.mtime: #{file_stats.mtime}."
|
90
|
-
Log.info "file_stat.mtime: #{file_stats.mtime.to_i}."
|
91
|
-
Log.info "File.mtime: #{File.mtime(file_path)}."
|
92
|
-
Log.info "File.mtime: #{File.mtime(file_path).to_i}."
|
93
|
-
|
94
|
-
file_mtime = nil
|
95
|
-
file = File.open(file_path, "r") do |file|
|
96
|
-
Log.info "file.open.mtime = #{file.mtime}"
|
97
|
-
Log.info "file.open.mtime = #{file.mtime.to_i}"
|
98
|
-
file_mtime = file.mtime
|
99
|
-
end
|
100
|
-
|
101
|
-
assert_equal(MOD_TIME_CONTENTS, file_mtime)
|
102
|
-
|
103
|
-
# !!! This fails on windows with different timezone
|
104
|
-
# assert_equal(MOD_TIME_CONTENTS, file_stats.mtime)
|
105
|
-
end
|
106
|
-
|
107
|
-
def test_modify
|
108
|
-
# modified ContentData. Test files also were modified.
|
109
|
-
mod_db = FileUtils.unify_time(@input_db)
|
110
|
-
|
111
|
-
Log.info "==============="
|
112
|
-
Log.info @input_db.to_s
|
113
|
-
Log.info "==============="
|
114
|
-
|
115
|
-
# checking that content was modified according to the instance with minimal time
|
116
|
-
mod_db.each_instance { |checksum, size, content_mod_time, instance_mod_time, server, path|
|
117
|
-
next unless checksum.eql?(@mod_instance_checksum)
|
118
|
-
content_time = FileUtils.parse_time(content_mod_time.to_s)
|
119
|
-
assert_equal(MOD_TIME_INSTANCES, content_time)
|
120
|
-
instance_time = FileUtils.parse_time(instance_mod_time.to_s)
|
121
|
-
assert_equal(MOD_TIME_INSTANCES, instance_time)
|
122
|
-
}
|
123
|
-
|
124
|
-
# checking that files were actually modified
|
125
|
-
mod_db.each_instance { |checksum, size, content_mod_time, instance_mod_time, server, path|
|
126
|
-
indexer = FileIndexing::IndexAgent.new # (instance.server_name, instance.device)
|
127
|
-
patterns = FileIndexing::IndexerPatterns.new
|
128
|
-
patterns.add_pattern(File.dirname(path) + '/*') # this pattern index all files
|
129
|
-
indexer.index(patterns, mod_db)
|
130
|
-
assert_equal(indexer.indexed_content, mod_db)
|
131
|
-
break
|
132
|
-
}
|
133
|
-
end
|
134
|
-
end
|
135
|
-
end
|
136
|
-
end
|
data/test/params/params_spec.rb
DELETED
@@ -1,280 +0,0 @@
|
|
1
|
-
# Author: Yaron Dror (yaron.dror.bb@gmail.com)
|
2
|
-
# Description: The file contains 'Param' module tests
|
3
|
-
|
4
|
-
require 'rspec'
|
5
|
-
require 'yaml'
|
6
|
-
|
7
|
-
require_relative '../../lib/params.rb'
|
8
|
-
|
9
|
-
module Params
|
10
|
-
# make private methods or Params public for testing capability.
|
11
|
-
public_class_method :parse_command_line_arguments, \
|
12
|
-
:raise_error_if_param_exists, :raise_error_if_param_does_not_exist, \
|
13
|
-
:read_yml_params, :override_param
|
14
|
-
|
15
|
-
module Spec
|
16
|
-
|
17
|
-
describe 'Params::parameter' do
|
18
|
-
|
19
|
-
it 'should define a new parameters' do
|
20
|
-
Params.string 'par_str', 'sss' ,'desc_str'
|
21
|
-
Params.integer 'par_int',1 , 'desc_int'
|
22
|
-
Params.float 'par_float',2.6 , 'desc_float'
|
23
|
-
Params.boolean 'par_true', true, 'desc_true'
|
24
|
-
Params.boolean 'par_false',false , 'desc_false'
|
25
|
-
Params['par_str'].should eq 'sss'
|
26
|
-
Params['par_int'].should eq 1
|
27
|
-
Params['par_float'].should eq 2.6
|
28
|
-
Params['par_true'].should eq true
|
29
|
-
Params['par_false'].should eq false
|
30
|
-
end
|
31
|
-
|
32
|
-
it 'should raise an error for wrong parameter type definition.' do
|
33
|
-
expect { Params::Param.new 'bad_type', 5, 'non_existing_type', 'desc_bad_type' }.to raise_error
|
34
|
-
end
|
35
|
-
|
36
|
-
it 'should raise an error when trying to define twice the same parameter' do
|
37
|
-
Params.string 'only_once', '1st' ,''
|
38
|
-
expect { Params.string 'only_once', '2nd' ,'' }.to raise_error \
|
39
|
-
"Parameter:'only_once', can only be defined once."
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
describe 'Params::read_yml_params' do
|
44
|
-
it 'should raise error when yml parameter is not defined' do
|
45
|
-
expect { Params::read_yml_params StringIO.new 'not_defined: 10' }.to raise_error \
|
46
|
-
"Parameter:'not_defined' has not been defined and can not be overridden. " \
|
47
|
-
"It should first be defined through Param module methods:" \
|
48
|
-
"Params.string, Params.path, Params.integer, Params.float, Params.complex, or Params.boolean."
|
49
|
-
end
|
50
|
-
|
51
|
-
it 'Will test yml parameter loading' do
|
52
|
-
# string to other. Will not raise error. Instead a cast is made.
|
53
|
-
Params.string('tmp4str', 'string_value', 'tmp4 def')
|
54
|
-
expect { Params::read_yml_params StringIO.new 'tmp4str: strr' }.to_not raise_error
|
55
|
-
expect { Params::read_yml_params StringIO.new 'tmp4str: 4' }.to_not raise_error
|
56
|
-
expect { Params::read_yml_params StringIO.new 'tmp4str: 4.5' }.to_not raise_error
|
57
|
-
expect { Params::read_yml_params StringIO.new 'tmp4str: true' }.to_not raise_error
|
58
|
-
expect { Params::read_yml_params StringIO.new 'tmp4str: false' }.to_not raise_error
|
59
|
-
|
60
|
-
# override integer with other types.
|
61
|
-
Params.integer('tmp4int', 1, 'tmp4 def')
|
62
|
-
expect { Params::read_yml_params StringIO.new 'tmp4int: strr' }.to raise_error \
|
63
|
-
"Parameter:'tmp4int' type:'Integer' but value type to override " \
|
64
|
-
"is:'String'."
|
65
|
-
expect { Params::read_yml_params StringIO.new 'tmp4int: 4' }.to_not raise_error
|
66
|
-
expect { Params::read_yml_params StringIO.new 'tmp4int: 4.5' }.to raise_error \
|
67
|
-
"Parameter:'tmp4int' type:'Integer' but value type to override " \
|
68
|
-
"is:'Float'."
|
69
|
-
expect { Params::read_yml_params StringIO.new 'tmp4int: true' }.to raise_error \
|
70
|
-
"Parameter:'tmp4int' type:'Integer' but value type to override " \
|
71
|
-
"is:'TrueClass'."
|
72
|
-
expect { Params::read_yml_params StringIO.new 'tmp4int: false' }.to raise_error \
|
73
|
-
"Parameter:'tmp4int' type:'Integer' but value type to override " \
|
74
|
-
"is:'FalseClass'."
|
75
|
-
|
76
|
-
# override float with other types.
|
77
|
-
Params.float('tmp4float', 1.1, 'tmp4 def')
|
78
|
-
expect { Params::read_yml_params StringIO.new 'tmp4float: strr' }.to raise_error \
|
79
|
-
"Parameter:'tmp4float' type:'Float' but value type to override " \
|
80
|
-
"is:'String'."
|
81
|
-
expect { Params::read_yml_params StringIO.new 'tmp4float: 4' }.to_not raise_error
|
82
|
-
expect { Params::read_yml_params StringIO.new 'tmp4float: 4.5' }.to_not raise_error
|
83
|
-
expect { Params::read_yml_params StringIO.new 'tmp4float: true' }.to raise_error \
|
84
|
-
"Parameter:'tmp4float' type:'Float' but value type to override " \
|
85
|
-
"is:'TrueClass'."
|
86
|
-
expect { Params::read_yml_params StringIO.new 'tmp4float: false' }.to raise_error \
|
87
|
-
"Parameter:'tmp4float' type:'Float' but value type to override " \
|
88
|
-
"is:'FalseClass'."
|
89
|
-
# override boolean with other types.
|
90
|
-
Params.boolean('tmp4true', true, 'tmp4 def')
|
91
|
-
expect { Params::read_yml_params StringIO.new 'tmp4true: strr' }.to raise_error \
|
92
|
-
"Parameter:'tmp4true' type:'Boolean' but value type to override " \
|
93
|
-
"is:'String'."
|
94
|
-
expect { Params::read_yml_params StringIO.new 'tmp4true: 4' }.to raise_error \
|
95
|
-
"Parameter:'tmp4true' type:'Boolean' but value type to override " \
|
96
|
-
"is:'Fixnum'."
|
97
|
-
expect { Params::read_yml_params StringIO.new 'tmp4true: 4.5' }.to raise_error \
|
98
|
-
"Parameter:'tmp4true' type:'Boolean' but value type to override " \
|
99
|
-
"is:'Float'."
|
100
|
-
expect { Params::read_yml_params StringIO.new 'tmp4true: true' }.to_not raise_error
|
101
|
-
expect { Params.read_yml_params StringIO.new 'tmp4true: false' }.to_not raise_error
|
102
|
-
|
103
|
-
Params.boolean('tmp4False', true, 'tmp4 def')
|
104
|
-
expect { Params.read_yml_params StringIO.new 'tmp4False: strr' }.to raise_error \
|
105
|
-
"Parameter:'tmp4False' type:'Boolean' but value type to override " \
|
106
|
-
"is:'String'."
|
107
|
-
expect { Params.read_yml_params StringIO.new 'tmp4False: 4' }.to raise_error \
|
108
|
-
"Parameter:'tmp4False' type:'Boolean' but value type to override " \
|
109
|
-
"is:'Fixnum'."
|
110
|
-
expect { Params.read_yml_params StringIO.new 'tmp4False: 4.5' }.to raise_error \
|
111
|
-
"Parameter:'tmp4False' type:'Boolean' but value type to override " \
|
112
|
-
"is:'Float'."
|
113
|
-
expect { Params.read_yml_params StringIO.new 'tmp4False: true' }.to_not raise_error
|
114
|
-
expect { Params.read_yml_params StringIO.new 'tmp4False: false' }.to_not raise_error
|
115
|
-
|
116
|
-
end
|
117
|
-
|
118
|
-
it 'should return false when yml file format is bad' do
|
119
|
-
Params.read_yml_params(StringIO.new 'bad yml format').should eq false
|
120
|
-
end
|
121
|
-
|
122
|
-
it 'should override defined values with yml values' do
|
123
|
-
Params.string('tmp5str', 'aaa', 'tmp5 def')
|
124
|
-
Params.integer('tmp5int', 11, 'tmp5 def')
|
125
|
-
Params.float('tmp5float', 11.11, 'tmp5 def')
|
126
|
-
Params.boolean('tmp5true', true, 'tmp5 def')
|
127
|
-
Params.boolean('tmp5false', false, 'tmp5 def')
|
128
|
-
Params.read_yml_params StringIO.new "tmp5str: bbb\ntmp5int: 12\ntmp5float: 12.12\n"
|
129
|
-
Params.read_yml_params StringIO.new "tmp5true: false\ntmp5false: true\n"
|
130
|
-
Params['tmp5str'].should eq 'bbb'
|
131
|
-
Params['tmp5int'].should eq 12
|
132
|
-
Params['tmp5float'].should eq 12.12
|
133
|
-
Params['tmp5true'].should eq false
|
134
|
-
Params['tmp5false'].should eq true
|
135
|
-
end
|
136
|
-
end
|
137
|
-
|
138
|
-
describe 'Params.parse_command_line_arguments' do
|
139
|
-
it 'should raise error when command line parameter is not defined' do
|
140
|
-
expect { Params.parse_command_line_arguments ['--new_param=9]'] }.to raise_error
|
141
|
-
end
|
142
|
-
|
143
|
-
it 'should parse parameter from command line.' do
|
144
|
-
# Override string with types.
|
145
|
-
Params.string('tmp6str', 'dummy', 'tmp6str def')
|
146
|
-
expect { Params.parse_command_line_arguments ['--tmp6str=9'] }.to_not raise_error
|
147
|
-
expect { Params.parse_command_line_arguments ['--tmp6str=8.1'] }.to_not raise_error
|
148
|
-
expect { Params.parse_command_line_arguments ['--tmp6str=ff'] }.to_not raise_error
|
149
|
-
expect { Params.parse_command_line_arguments ['--tmp6str=true'] }.to_not raise_error
|
150
|
-
expect { Params.parse_command_line_arguments ['--tmp6str=false'] }.to_not raise_error
|
151
|
-
|
152
|
-
# from fixnum to other types.
|
153
|
-
Params.integer('tmp6', 8, 'tmp6 def')
|
154
|
-
expect { Params.parse_command_line_arguments ['--tmp6=9'] }.to_not raise_error
|
155
|
-
expect { Params.parse_command_line_arguments ['--tmp6=8.1'] }.to raise_error
|
156
|
-
expect { Params.parse_command_line_arguments ['--tmp6=ff'] }.to raise_error
|
157
|
-
expect { Params.parse_command_line_arguments ['--tmp6=true'] }.to raise_error
|
158
|
-
expect { Params.parse_command_line_arguments ['--tmp6=false'] }.to raise_error
|
159
|
-
|
160
|
-
# from float to other types.
|
161
|
-
Params.float('tmp7', 8.9, 'tmp7 def')
|
162
|
-
# Casting fix num to float
|
163
|
-
expect { Params.parse_command_line_arguments ['--tmp7=9'] }.to_not raise_error
|
164
|
-
expect { Params.parse_command_line_arguments ['--tmp7=3.4'] }.to_not raise_error
|
165
|
-
expect { Params.parse_command_line_arguments ['--tmp7=ff'] }.to raise_error
|
166
|
-
expect { Params.parse_command_line_arguments ['--tmp7=true'] }.to raise_error
|
167
|
-
expect { Params.parse_command_line_arguments ['--tmp7=false'] }.to raise_error
|
168
|
-
|
169
|
-
# from TrueClass to other types.
|
170
|
-
Params.boolean('tmp8', true, 'tmp8 def')
|
171
|
-
expect { Params.parse_command_line_arguments ['--tmp8=9'] }.to_not raise_error
|
172
|
-
expect { Params.parse_command_line_arguments ['--tmp8=3.4'] }.to_not raise_error
|
173
|
-
expect { Params.parse_command_line_arguments ['--tmp8=ff'] }.to_not raise_error
|
174
|
-
expect { Params.parse_command_line_arguments ['--tmp8=true'] }.to_not raise_error
|
175
|
-
expect { Params.parse_command_line_arguments ['--tmp8=false'] }.to_not raise_error
|
176
|
-
|
177
|
-
# from FalseClass to other types.
|
178
|
-
Params.boolean('tmp9', false, 'tmp9 def')
|
179
|
-
expect { Params.parse_command_line_arguments ['--tmp9=9'] }.to_not raise_error
|
180
|
-
expect { Params.parse_command_line_arguments ['--tmp9=3.4'] }.to_not raise_error
|
181
|
-
expect { Params.parse_command_line_arguments ['--tmp9=ff'] }.to_not raise_error
|
182
|
-
expect { Params.parse_command_line_arguments ['--tmp9=true'] }.to_not raise_error
|
183
|
-
expect { Params.parse_command_line_arguments ['--tmp9=false'] }.to_not raise_error
|
184
|
-
end
|
185
|
-
end
|
186
|
-
|
187
|
-
describe 'Params.init' do
|
188
|
-
it 'should override command line arguments correctly.' do
|
189
|
-
File.stub(:exist?).and_return false
|
190
|
-
# Override string with types.
|
191
|
-
Params.string('tmp6str2', 'dummy', 'tmp6str def')
|
192
|
-
expect { Params.init ['--tmp6str2=9'] }.to_not raise_error
|
193
|
-
expect { Params.init ['--tmp6str2=8.1'] }.to_not raise_error
|
194
|
-
expect { Params.init ['--tmp6str2=ff'] }.to_not raise_error
|
195
|
-
expect { Params.init ['--tmp6str2=true'] }.to_not raise_error
|
196
|
-
expect { Params.init ['--tmp6str2=false'] }.to_not raise_error
|
197
|
-
|
198
|
-
# from fixnum to other types.
|
199
|
-
Params.integer('tmp6Fixnum2', 8, 'tmp6 def')
|
200
|
-
expect { Params.init ['--tmp6Fixnum2=9'] }.to_not raise_error
|
201
|
-
expect { Params.init ['--tmp6Fixnum2=8.1'] }.to raise_error
|
202
|
-
expect { Params.init ['--tmp6Fixnum2=ff'] }.to raise_error
|
203
|
-
expect { Params.init ['--tmp6Fixnum2=true'] }.to raise_error
|
204
|
-
expect { Params.init ['--tmp6Fixnum2=false'] }.to raise_error
|
205
|
-
|
206
|
-
# from float to other types.
|
207
|
-
Params.float('tmp7float2', 8.9, 'tmp7 def')
|
208
|
-
# Casting fix num to float
|
209
|
-
expect { Params.init ['--tmp7float2=9'] }.to_not raise_error
|
210
|
-
expect { Params.init ['--tmp7float2=3.4'] }.to_not raise_error
|
211
|
-
expect { Params.init ['--tmp7float2=ff'] }.to raise_error
|
212
|
-
expect { Params.init ['--tmp7float2=true'] }.to raise_error
|
213
|
-
expect { Params.init ['--tmp7float2=false'] }.to raise_error
|
214
|
-
|
215
|
-
# from TrueClass to other types.
|
216
|
-
Params.boolean('tmp8true2', true, 'tmp8 def')
|
217
|
-
expect { Params.init ['--tmp8true2=9'] }.to raise_error
|
218
|
-
expect { Params.init ['--tmp8true2=3.4'] }.to raise_error
|
219
|
-
expect { Params.init ['--tmp8true2=ff'] }.to raise_error
|
220
|
-
expect { Params.init ['--tmp8true2=true'] }.to_not raise_error
|
221
|
-
expect { Params.init ['--tmp8true2=false'] }.to_not raise_error
|
222
|
-
|
223
|
-
# from FalseClass to other types.
|
224
|
-
Params.boolean('tmp9false2', false, 'tmp9 def')
|
225
|
-
expect { Params.init ['--tmp9false2=9'] }.to raise_error
|
226
|
-
expect { Params.init ['--tmp9false2=3.4'] }.to raise_error
|
227
|
-
expect { Params.init ['--tmp9false2=ff'] }.to raise_error
|
228
|
-
expect { Params.init ['--tmp9false2=true'] }.to_not raise_error
|
229
|
-
expect { Params.init ['--tmp9false2=false'] }.to_not raise_error
|
230
|
-
end
|
231
|
-
|
232
|
-
it 'should override defined values with command line values' do
|
233
|
-
File.stub(:exist?).and_return false
|
234
|
-
Params.string('tmp10str', 'aaa', 'tmp10 def')
|
235
|
-
Params.integer('tmp10int', 11, 'tmp10 def')
|
236
|
-
Params.float('tmp10float', 11.11, 'tmp10 def')
|
237
|
-
Params.boolean('tmp10true', true, 'tmp10 def')
|
238
|
-
Params.boolean('tmp10false', false, 'tmp10 def')
|
239
|
-
Params.init ['--tmp10str=bbb', '--tmp10int=12', '--tmp10float=12.12', \
|
240
|
-
'--tmp10true=false', '--tmp10false=true']
|
241
|
-
Params['tmp10str'].should eq 'bbb'
|
242
|
-
Params['tmp10int'].should eq 12
|
243
|
-
Params['tmp10float'].should eq 12.12
|
244
|
-
Params['tmp10true'].should eq false
|
245
|
-
Params['tmp10false'].should eq true
|
246
|
-
end
|
247
|
-
|
248
|
-
it 'init should override parameters with file and command' do
|
249
|
-
Params.string('init_param', 'code', '')
|
250
|
-
File.stub(:exist?).and_return true
|
251
|
-
File.stub(:open).and_return StringIO.new 'init_param: yml'
|
252
|
-
Params.init ['--conf_file=dummy_file', '--init_param=command-line']
|
253
|
-
Params['init_param'].should eq 'command-line'
|
254
|
-
end
|
255
|
-
|
256
|
-
it 'init should override parameters with file only' do
|
257
|
-
Params.string('init_param2', 'code', '')
|
258
|
-
File.stub(:exist?).and_return true
|
259
|
-
File.stub(:open).and_return StringIO.new 'init_param2: yml'
|
260
|
-
Params.init ['--conf_file=dummy_file']
|
261
|
-
Params['init_param2'].should eq 'yml'
|
262
|
-
end
|
263
|
-
|
264
|
-
it 'init should override parameters with command line only' do
|
265
|
-
Params.string('init_param3', 'code', '')
|
266
|
-
File.stub(:exist?).and_return false
|
267
|
-
Params.init ['--init_param3=command-line']
|
268
|
-
Params['init_param3'].should eq 'command-line'
|
269
|
-
end
|
270
|
-
|
271
|
-
it 'init should not override any parameters' do
|
272
|
-
Params.string('init_param4', 'code', '')
|
273
|
-
File.stub(:exist?).and_return false
|
274
|
-
Params.init []
|
275
|
-
Params['init_param4'].should eq 'code'
|
276
|
-
end
|
277
|
-
end
|
278
|
-
end
|
279
|
-
end
|
280
|
-
|
data/test/params/params_test.rb
DELETED
@@ -1,43 +0,0 @@
|
|
1
|
-
# Author: Yaron Dror (yaron.dror.bb@gmail.com)
|
2
|
-
# Description: Params test file.
|
3
|
-
# run: rake test.
|
4
|
-
# Note: This file will be tested along with all project tests.
|
5
|
-
|
6
|
-
#require 'params'
|
7
|
-
require 'test/unit'
|
8
|
-
require_relative '../../lib/params.rb'
|
9
|
-
|
10
|
-
|
11
|
-
class TestLog < ::Test::Unit::TestCase
|
12
|
-
|
13
|
-
def test_parsing_of_the_defined_parameters
|
14
|
-
# Define options
|
15
|
-
Params.integer('remote_server1', 3333,
|
16
|
-
'Listening port for backup server content data.')
|
17
|
-
Params.string('backup_username1', 'tmp', 'Backup server username.')
|
18
|
-
Params.string('backup_password1', 'tmp', 'Backup server password.')
|
19
|
-
Params.string('backup_destination_folder1', '',
|
20
|
-
'Backup server destination folder, default is the relative local folder.')
|
21
|
-
Params.string('content_data_path1', File.expand_path('~/.bbfs/var/content.data'),
|
22
|
-
'ContentData file path.')
|
23
|
-
Params.string('monitoring_config_path1', File.expand_path('~/.bbfs/etc/file_monitoring.yml'),
|
24
|
-
'Configuration file for monitoring.')
|
25
|
-
Params.float('time_to_start1', 0.03,
|
26
|
-
'Time to start monitoring')
|
27
|
-
|
28
|
-
cmd = ['--remote_server1=2222', '--backup_username1=rami', '--backup_password1=kavana',
|
29
|
-
'--backup_destination_folder1=C:\Users\Alexey\Backup',
|
30
|
-
'--content_data_path1=C:\Users\Alexey\Content',
|
31
|
-
'--monitoring_config_path1=C:\Users\Alexey\Config',
|
32
|
-
'--time_to_start1=1.5']
|
33
|
-
Params.init cmd
|
34
|
-
assert_equal(2222, Params['remote_server1'])
|
35
|
-
assert_equal('rami', Params['backup_username1'])
|
36
|
-
assert_equal('kavana', Params['backup_password1'])
|
37
|
-
assert_equal('C:\Users\Alexey\Backup', Params['backup_destination_folder1'])
|
38
|
-
assert_equal('C:\Users\Alexey\Content', Params['content_data_path1'])
|
39
|
-
assert_equal('C:\Users\Alexey\Config', Params['monitoring_config_path1'])
|
40
|
-
assert_equal(1.5, Params['time_to_start1'])
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|