hw_checker 1.3.48 → 1.4.4
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 +8 -8
- data/bin/hw_checker +3 -3
- data/config/config.yml +12 -0
- data/lib/hw_checker/archive_result.rb +12 -0
- data/lib/hw_checker/base.rb +7 -7
- data/lib/hw_checker/directory_format_error.rb +3 -0
- data/lib/hw_checker/file_scan.rb +9 -8
- data/lib/hw_checker/{python_stat.rb → python_code_quality.rb} +14 -3
- data/lib/hw_checker/python_test_run.rb +1 -1
- data/lib/hw_checker/{ruby_stat.rb → ruby_code_quality.rb} +3 -2
- data/lib/hw_checker/ruby_test_run.rb +1 -1
- data/lib/hw_checker/string.rb +7 -0
- data/lib/hw_checker/zip.rb +1 -1
- data/lib/hw_checker.rb +18 -8
- data/spec/spec_helper.rb +2 -0
- metadata +9 -11
- data/lib/hw_checker/test_run_stat.rb +0 -25
- data/spec/base_spec.rb +0 -32
- data/spec/file_scan_spec.rb +0 -48
- data/spec/ruby_stat_spec.rb +0 -30
- data/spec/ruby_test_run_spec.rb +0 -27
- data/spec/test_run_stat_spec.rb +0 -14
- data/spec/zip_spec.rb +0 -29
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NzhkMzI5YTgzNjBhNDc1ZWRhMTljMjQ2NTJlMDRlMjUxZTI3NWY1ZA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YjdhOTc1MjE5ZjBiZjkzMTRkZTUzODA4MGQ2NjQzNDljYmFkY2E1Yg==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
OGIxODQ0OWE4YjYyM2IxYzU1MjIxNzE3MTViNTQ5NTllN2E4MTIyYTIzOTQ5
|
10
|
+
MjMxZmI0NTFlMDU0ZjdmNGFiOWFiNjQ5ZGE3MmMzNjAxOTJkZmU0NTM0N2My
|
11
|
+
MzA0MjZiOWQ2YjJhOWNmM2RkZDNlZjFhODExMTA0ZmZkOTZiYjM=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
OWRlN2UwNmJjM2YxMmIxZjRkMmFhYjFjYjE3N2RlOWViYTc1MjY5Nzg3N2Q4
|
14
|
+
M2RhODFjOGFkYjJmMDEwZDNhYjc1OTgxM2EzYmMwMTVjMWY2OGJiOGIwNmJl
|
15
|
+
YTg2ZWNkMjE4ZTEyZGM2NmRjYjNmYjM0NGU1NmJmYzEyODAyOWE=
|
data/bin/hw_checker
CHANGED
@@ -3,9 +3,9 @@
|
|
3
3
|
require 'hw_checker'
|
4
4
|
|
5
5
|
begin
|
6
|
-
HomeWorkChecker::FileScan.new(ARGV[0],
|
7
|
-
HomeWorkChecker::Base.start(ARGV[0],
|
6
|
+
HomeWorkChecker::FileScan.new(ARGV[0], ARGV[1]).each do |name, type|
|
7
|
+
HomeWorkChecker::Base.start(ARGV[0], ARGV[1], name, type)
|
8
8
|
end
|
9
|
-
rescue HomeWorkChecker::DirectoryExistError => error
|
9
|
+
rescue HomeWorkChecker::DirectoryExistError, HomeWorkChecker::DirectoryFormatError => error
|
10
10
|
puts error.message, error.backtrace
|
11
11
|
end
|
data/config/config.yml
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
#
|
2
|
+
# List of used languages is defined here
|
3
|
+
#
|
4
|
+
languages:
|
5
|
+
rb: ruby
|
6
|
+
py: python
|
7
|
+
|
8
|
+
modules:
|
9
|
+
ruby: HomeWorkChecker::ArchiveResult::RubyTestRun HomeWorkChecker::ArchiveResult::RubyCodeQuality
|
10
|
+
python: HomeWorkChecker::ArchiveResult::PythonTestRun HomeWorkChecker::ArchiveResult::PythonCodeQuality
|
11
|
+
|
12
|
+
archives: .zip .7z
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module HomeWorkChecker
|
2
|
+
module ArchiveResult
|
3
|
+
def self.execute(tmp_path, name)
|
4
|
+
language_name = LANGUAGE_TYPES[name.split('_')[1] ]
|
5
|
+
raise DirectoryFormatError, "Directory '#{name}' does not match needed format" if language_name.nil?
|
6
|
+
stats = MODULE_TYPES[language_name].split(' ').map do |class_name|
|
7
|
+
class_name.constatize.new(tmp_path, name).perform
|
8
|
+
end
|
9
|
+
[language_name, stats.first, stats.last ]
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
data/lib/hw_checker/base.rb
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
module HomeWorkChecker
|
2
2
|
class Base
|
3
|
-
def self.start(
|
3
|
+
def self.start(archive_path, result_path, name, type, tmp_path = '/tmp')
|
4
4
|
`rm -r #{tmp_path}/#{name}` if Dir.exist?("#{tmp_path}/#{name}")
|
5
5
|
time_start, xml_content = Time.now, {}
|
6
|
-
Unarchive::Zip.new("#{
|
7
|
-
|
8
|
-
|
6
|
+
Unarchive::Zip.new("#{archive_path}/#{name+type}", tmp_path)
|
7
|
+
stats = ArchiveResult.execute(tmp_path, name)
|
8
|
+
stats << (Time.now - time_start).round(2)
|
9
9
|
|
10
|
-
File.open("#{
|
11
|
-
file.write(generate_xml_content(name,
|
10
|
+
File.open("#{result_path}/#{name}.xml", 'w') do |file|
|
11
|
+
file.write(generate_xml_content(name, stats) )
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
@@ -16,7 +16,7 @@ module HomeWorkChecker
|
|
16
16
|
def self.generate_xml_content(identity, info)
|
17
17
|
Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml|
|
18
18
|
xml.root {
|
19
|
-
xml.student identity.split('_').first # name
|
19
|
+
xml.student identity.split('_').first # student name
|
20
20
|
xml.homework identity.split('_').last # homework
|
21
21
|
xml.language info[0] # language
|
22
22
|
xml.ratio info[1] # ratio of passed and failed tests
|
data/lib/hw_checker/file_scan.rb
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
module HomeWorkChecker
|
2
2
|
class FileScan
|
3
|
-
def initialize(
|
4
|
-
raise DirectoryExistError, "Directory #{
|
5
|
-
raise DirectoryExistError, "Directory #{
|
6
|
-
|
7
|
-
|
8
|
-
|
3
|
+
def initialize(archive_path, result_path, tmp_path = '/tmp')
|
4
|
+
raise DirectoryExistError, "Directory '#{archive_path}' does not exist" unless Dir::exist?(archive_path)
|
5
|
+
raise DirectoryExistError, "Directory '#{result_path}' does not exist" unless Dir::exist?(result_path)
|
6
|
+
raise DirectoryExistError, "Directory '#{tmp_path}' does not exist" unless Dir::exist?(tmp_path)
|
7
|
+
@archive_path, @result_path, @tmp_path, @files = archive_path, result_path, tmp_path, []
|
8
|
+
Dir.foreach(@archive_path) do |p|
|
9
|
+
if File.file?("#{archive_path}/#{p}") && ARCHIVE_TYPES.include?(File.extname p) && !exist_xml?(p)
|
9
10
|
@files << p
|
10
11
|
end
|
11
12
|
end
|
@@ -26,8 +27,8 @@ module HomeWorkChecker
|
|
26
27
|
|
27
28
|
private
|
28
29
|
def exist_xml?(archive_name)
|
29
|
-
|
30
|
-
File.exist? "#{@
|
30
|
+
name = archive_name.chomp(File.extname archive_name)
|
31
|
+
File.exist? "#{@result_path}/#{name}.xml"
|
31
32
|
end
|
32
33
|
end
|
33
34
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module HomeWorkChecker
|
2
|
-
module
|
3
|
-
class
|
2
|
+
module ArchiveResult
|
3
|
+
class PythonCodeQuality
|
4
4
|
def initialize(tmp_path, dirname)
|
5
5
|
@work_path = "#{tmp_path}/#{dirname}/tests/statistic"
|
6
6
|
raise DirectoryExistError, "Archive '#{dirname}' is invalid" unless Dir::exist?(@work_path)
|
@@ -18,7 +18,18 @@ module HomeWorkChecker
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def calc_percent_quality(filename)
|
21
|
-
|
21
|
+
=begin
|
22
|
+
rake = ((`tail -n 75 #{filename}`).scan(/\d{1,2}\.\d{1,2}\\/).shift.to_f)
|
23
|
+
if rake > 10
|
24
|
+
(rake / 10).round(2)
|
25
|
+
else
|
26
|
+
(rake * 10).round(2)
|
27
|
+
end
|
28
|
+
=end
|
29
|
+
File.open(filename).each_line do |line|
|
30
|
+
next unless line.match(/^Your\scode\shas\sbeen\srated\sat/)
|
31
|
+
return ( line.scan(/[\d\.]+/).shift.to_f * 10 )
|
32
|
+
end
|
22
33
|
end
|
23
34
|
end
|
24
35
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module HomeWorkChecker
|
2
|
-
module
|
3
|
-
class
|
2
|
+
module ArchiveResult
|
3
|
+
class RubyCodeQuality
|
4
4
|
def initialize(tmp_path, dirname)
|
5
5
|
@work_path = "#{tmp_path}/#{dirname}"
|
6
6
|
raise DirectoryExistError, "Archive '#{dirname}' is invalid" unless Dir::exist?(@work_path)
|
@@ -17,6 +17,7 @@ module HomeWorkChecker
|
|
17
17
|
calc_percent_quality
|
18
18
|
end
|
19
19
|
|
20
|
+
private
|
20
21
|
def count_lines_failed(filename)
|
21
22
|
temp = []
|
22
23
|
File.open(filename).each_line do |line|
|
data/lib/hw_checker/zip.rb
CHANGED
data/lib/hw_checker.rb
CHANGED
@@ -1,20 +1,30 @@
|
|
1
1
|
require 'nokogiri'
|
2
|
+
require 'yaml'
|
2
3
|
require 'hw_checker/directory_exist_error'
|
4
|
+
require 'hw_checker/directory_format_error'
|
5
|
+
require 'hw_checker/string'
|
3
6
|
require 'hw_checker/base'
|
4
7
|
require 'hw_checker/file_scan'
|
5
8
|
require 'hw_checker/unarchive'
|
6
9
|
require 'hw_checker/zip'
|
7
|
-
require 'hw_checker/
|
8
|
-
require 'hw_checker/
|
10
|
+
require 'hw_checker/archive_result'
|
11
|
+
require 'hw_checker/python_code_quality'
|
9
12
|
require 'hw_checker/python_test_run'
|
10
|
-
require 'hw_checker/
|
13
|
+
require 'hw_checker/ruby_code_quality'
|
11
14
|
require 'hw_checker/ruby_test_run'
|
12
15
|
|
13
16
|
|
14
17
|
module HomeWorkChecker
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
'.
|
19
|
-
|
18
|
+
def self.configurate
|
19
|
+
fname = File.expand_path('./config/config.yml')
|
20
|
+
hash_conf = YAML.load_file fname
|
21
|
+
archive_types, language_types, module_types = hash_conf['archives'].split(' '), {}, {}
|
22
|
+
hash_conf['languages'].each do |key, value|
|
23
|
+
language_types[key] = value
|
24
|
+
module_types[value] = hash_conf['modules'][value]
|
25
|
+
end
|
26
|
+
[archive_types, language_types, module_types]
|
27
|
+
end
|
28
|
+
|
29
|
+
ARCHIVE_TYPES, LANGUAGE_TYPES, MODULE_TYPES = self.configurate
|
20
30
|
end
|
data/spec/spec_helper.rb
ADDED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hw_checker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lv-LAMP-085
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-06-
|
11
|
+
date: 2013-06-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -60,22 +60,20 @@ extra_rdoc_files: []
|
|
60
60
|
files:
|
61
61
|
- lib/hw_checker/python_test_run.rb
|
62
62
|
- lib/hw_checker/ruby_test_run.rb
|
63
|
+
- lib/hw_checker/string.rb
|
64
|
+
- lib/hw_checker/directory_format_error.rb
|
65
|
+
- lib/hw_checker/python_code_quality.rb
|
63
66
|
- lib/hw_checker/base.rb
|
64
67
|
- lib/hw_checker/file_scan.rb
|
65
68
|
- lib/hw_checker/unarchive.rb
|
66
|
-
- lib/hw_checker/
|
69
|
+
- lib/hw_checker/ruby_code_quality.rb
|
70
|
+
- lib/hw_checker/archive_result.rb
|
67
71
|
- lib/hw_checker/directory_exist_error.rb
|
68
|
-
- lib/hw_checker/test_run_stat.rb
|
69
72
|
- lib/hw_checker/zip.rb
|
70
|
-
- lib/hw_checker/ruby_stat.rb
|
71
73
|
- lib/hw_checker.rb
|
72
74
|
- bin/hw_checker
|
73
|
-
- spec/
|
74
|
-
-
|
75
|
-
- spec/zip_spec.rb
|
76
|
-
- spec/base_spec.rb
|
77
|
-
- spec/ruby_test_run_spec.rb
|
78
|
-
- spec/file_scan_spec.rb
|
75
|
+
- spec/spec_helper.rb
|
76
|
+
- config/config.yml
|
79
77
|
homepage:
|
80
78
|
licenses: []
|
81
79
|
metadata: {}
|
@@ -1,25 +0,0 @@
|
|
1
|
-
module HomeWorkChecker
|
2
|
-
module TestRunStat
|
3
|
-
def self.detect_language(path)
|
4
|
-
return '.py' unless Dir.exist?("#{path}/test")
|
5
|
-
Dir.foreach("#{path}/test") do |p|
|
6
|
-
if File.file?("#{path}/test/#{p}") && LANGUAGE_TYPES.include?(File.extname p)
|
7
|
-
return File.extname p
|
8
|
-
end
|
9
|
-
end
|
10
|
-
raise "Any .rb/.py file doesn't exist"
|
11
|
-
end
|
12
|
-
|
13
|
-
def self.execute(work_path, tmp_path, dirname)
|
14
|
-
lang_needed = TestRunStat::detect_language("#{tmp_path}/#{dirname}")
|
15
|
-
class_names = LANGUAGE_TYPES[lang_needed]
|
16
|
-
test_passed = class_names.first.new(tmp_path, dirname).perform
|
17
|
-
code_quality = class_names.last.new(tmp_path, dirname).perform
|
18
|
-
[name_language(lang_needed), test_passed, code_quality]
|
19
|
-
end
|
20
|
-
|
21
|
-
def self.name_language(extname)
|
22
|
-
extname == '.rb' ? 'ruby' : 'python'
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
data/spec/base_spec.rb
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
require 'hw_checker'
|
2
|
-
|
3
|
-
module HomeWorkChecker
|
4
|
-
describe Base do
|
5
|
-
before(:each) do
|
6
|
-
@archives = ['aaa.zip', 'bbb.7z']
|
7
|
-
@work_path = './support/'
|
8
|
-
@tmp_path = './support/tmp'
|
9
|
-
#@baza = HomeWorkChecker::Base.new(@work_path)
|
10
|
-
end
|
11
|
-
context '#start' do
|
12
|
-
it 'extracting should execute 5 times' do
|
13
|
-
files_to = double("FileScan", :work_path => @work_path)
|
14
|
-
files_to.stub(:files).and_return(@archives)
|
15
|
-
|
16
|
-
szip_files = stub("HomeWorkChecker::Unarchive::Zip")
|
17
|
-
szip_files.should_receive(:new).with("aaa.zip", @tmp_path).once
|
18
|
-
szip_files.should_receive(:new).with("bbb.7z", @tmp_path).once
|
19
|
-
|
20
|
-
run_files = double("HomeWorkChecker::TestRunStat")
|
21
|
-
run_files.stub(:detect_language).with("#{@tmp_path}/task1").and_return(".rb")
|
22
|
-
rtr = stub(LANGUAGE_TYPES[run_files.detect_language "#{@tmp_path}/task1"])
|
23
|
-
rtr.should_receive(:new).with("#{@tmp_path}/task1").once
|
24
|
-
|
25
|
-
files_to.stub(:each).
|
26
|
-
and_yield(stub(szip_files.new(files_to.files[0], @tmp_path)),
|
27
|
-
stub(rtr.new("#{@tmp_path}/task1"))).
|
28
|
-
and_yield(stub(szip_files.new(files_to.files[1], @tmp_path)))
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
data/spec/file_scan_spec.rb
DELETED
@@ -1,48 +0,0 @@
|
|
1
|
-
require 'hw_checker'
|
2
|
-
|
3
|
-
module HomeWorkChecker
|
4
|
-
describe FileScan do
|
5
|
-
before(:each) do
|
6
|
-
@file_scan = FileScan.new('./support')
|
7
|
-
end
|
8
|
-
|
9
|
-
context '.new' do
|
10
|
-
def is_all_archives?
|
11
|
-
@file_scan.instance_variable_get(:@files).each do |item; ext_name|
|
12
|
-
ext_name = File::extname(item)
|
13
|
-
return false unless FILE_TYPES.include?(ext_name)
|
14
|
-
end
|
15
|
-
true
|
16
|
-
end
|
17
|
-
it 'should have exactly 6 items' do
|
18
|
-
@file_scan.instance_variable_get(:@files).should have(7).items
|
19
|
-
end
|
20
|
-
it 'should contain .zip/7z files only' do
|
21
|
-
is_all_archives?.should_not be_false
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
context '#each' do
|
26
|
-
before(:each) do
|
27
|
-
@file_scan.instance_variable_get(:@files).sort!
|
28
|
-
end
|
29
|
-
it 'should yield correct data' do
|
30
|
-
expect { |b| @file_scan.each(&b) }.to yield_successive_args(
|
31
|
-
["julia.tymo_creational.patterns", ".7z"],
|
32
|
-
["julia.tymo_iterators.in.ruby", ".zip"],
|
33
|
-
["pavlo.petryk_creational.patterns", ".zip"],
|
34
|
-
["pavlo.petryk_final.tasks", ".7z"],
|
35
|
-
["roman.horobets_creational.patterns", ".7z"],
|
36
|
-
["roman.horobets_final.tasks", ".zip"],
|
37
|
-
["roman.horobets_iterators.in.ruby", ".zip"]
|
38
|
-
)
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
context '#exist_xml?' do
|
43
|
-
it 'xml-file should exist' do
|
44
|
-
@file_scan.should_not be_exist_xml('test.xml')
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
data/spec/ruby_stat_spec.rb
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
require 'hw_checker'
|
2
|
-
|
3
|
-
module HomeWorkChecker
|
4
|
-
module TestRunStat
|
5
|
-
describe RubyStat do
|
6
|
-
before(:all) do
|
7
|
-
@ruby_stat = RubyStat.new('./support', 'julia.tymo_creational.patterns')
|
8
|
-
@ruby_stat.perform
|
9
|
-
end
|
10
|
-
|
11
|
-
context '#count_lines_failed' do
|
12
|
-
it 'should calculate failed lines correctly' do
|
13
|
-
@ruby_stat.instance_variable_get(:@lines_failed).should == 5
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
context '#count_lines_all' do
|
18
|
-
it 'should calculate failed lines count correctly' do
|
19
|
-
@ruby_stat.instance_variable_get(:@lines_all).should == 7
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
context '#calc_percent_quality' do
|
24
|
-
it 'should calculate percent correctly' do
|
25
|
-
@ruby_stat.send(:calc_percent_quality).should == 28.57
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
data/spec/ruby_test_run_spec.rb
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
require 'hw_checker'
|
2
|
-
|
3
|
-
module HomeWorkChecker
|
4
|
-
module TestRunStat
|
5
|
-
describe RubyTestRun do
|
6
|
-
before(:all) do
|
7
|
-
@ruby_test_run = RubyTestRun.new('./support', 'julia.tymo_creational.patterns')
|
8
|
-
@ruby_test_run.perform
|
9
|
-
end
|
10
|
-
|
11
|
-
context '#count_passed_failed' do
|
12
|
-
it 'should calculate passed tests correctly' do
|
13
|
-
@ruby_test_run.instance_variable_get(:@passed).should == 0
|
14
|
-
end
|
15
|
-
it 'should calculate failed tests correctly' do
|
16
|
-
@ruby_test_run.instance_variable_get(:@failed).should == 1
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
context '#calc_percent_passed' do
|
21
|
-
it 'should calculate percent passed tests correctly' do
|
22
|
-
@ruby_test_run.send(:calc_percent_passed).should == 0.00
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
data/spec/test_run_stat_spec.rb
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
require 'hw_checker'
|
2
|
-
|
3
|
-
module HomeWorkChecker
|
4
|
-
describe HomeWorkChecker::TestRunStat do
|
5
|
-
context '.detect_language' do
|
6
|
-
before(:each) do
|
7
|
-
@detect_test = TestRunStat.detect_language('./support/julia.tymo_creational.patterns')
|
8
|
-
end
|
9
|
-
it 'should contain .rb/.py tests' do
|
10
|
-
@detect_test.should == '.rb'
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
data/spec/zip_spec.rb
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
require 'hw_checker'
|
2
|
-
|
3
|
-
describe HomeWorkChecker::Unarchive::Zip do
|
4
|
-
before(:each) do
|
5
|
-
@path_filename = './support/julia.tymo_creational.patterns.7z'
|
6
|
-
@filename = 'julia.tymo_creational.patterns.7z'
|
7
|
-
@tmp_path = '/tmp/support/'
|
8
|
-
end
|
9
|
-
|
10
|
-
after(:each) do
|
11
|
-
`rm -rf #{@tmp_path}/#{@filename.chomp(".7z") || filename.chomp(".zip")}`
|
12
|
-
end
|
13
|
-
|
14
|
-
it 'should exist in temp' do
|
15
|
-
@unarchive1 = HomeWorkChecker::Unarchive::Zip.new(@path_filename, @tmp_path)
|
16
|
-
Dir.exist?("#{@tmp_path}/#{@filename.chomp(".7z") || filename.chomp(".zip")}").should be_true
|
17
|
-
end
|
18
|
-
|
19
|
-
it 'authenticity archive' do
|
20
|
-
@authenticity = `7za t #{@path_filename}`
|
21
|
-
@authenticity = @authenticity.include? "Everything is Ok"
|
22
|
-
@authenticity.should be_true
|
23
|
-
end
|
24
|
-
|
25
|
-
it 'exit code' do
|
26
|
-
@unarchive1 = HomeWorkChecker::Unarchive::Zip.new(@path_filename, @tmp_path)
|
27
|
-
$?.to_s[-1].to_i.should equal(0)
|
28
|
-
end
|
29
|
-
end
|