ass_tests 1.0.0.alpha
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 +7 -0
- data/.gitignore +9 -0
- data/.simplecov +1 -0
- data/.travis.yml +4 -0
- data/Gemfile +4 -0
- data/README.md +139 -0
- data/Rakefile +10 -0
- data/ass_tests.gemspec +31 -0
- data/bin/console +14 -0
- data/bin/setup +7 -0
- data/examples/describe_infobase.rb +81 -0
- data/lib/ass_tests.rb +16 -0
- data/lib/ass_tests/ass_dummy.rb +24 -0
- data/lib/ass_tests/config.rb +47 -0
- data/lib/ass_tests/externals.rb +135 -0
- data/lib/ass_tests/fixt.rb +50 -0
- data/lib/ass_tests/info_bases.rb +341 -0
- data/lib/ass_tests/info_bases/info_base.rb +143 -0
- data/lib/ass_tests/mini_test.rb +33 -0
- data/lib/ass_tests/minitest.rb +7 -0
- data/lib/ass_tests/minitest/assertions.rb +73 -0
- data/lib/ass_tests/minitest/autorun.rb +15 -0
- data/lib/ass_tests/version.rb +3 -0
- metadata +194 -0
@@ -0,0 +1,33 @@
|
|
1
|
+
module AssTests
|
2
|
+
require 'ass_tests/info_bases'
|
3
|
+
module MiniTest
|
4
|
+
class Test < Minitest::Test
|
5
|
+
class ConfigureError < StandardError; end
|
6
|
+
def self.use(infobase_name)
|
7
|
+
@infobase = AssTests::InfoBases[infobase_name]
|
8
|
+
end
|
9
|
+
|
10
|
+
def infobase
|
11
|
+
fail ConfigureError if self.class.infobase.nil?
|
12
|
+
self.class.infobase
|
13
|
+
end
|
14
|
+
alias_method :ib, :infobase
|
15
|
+
|
16
|
+
def self.infobase
|
17
|
+
@infobase
|
18
|
+
end
|
19
|
+
|
20
|
+
def connection_string
|
21
|
+
infobase.connection_string
|
22
|
+
end
|
23
|
+
alias_method :cs, :connection_string
|
24
|
+
|
25
|
+
def platform_require
|
26
|
+
infobase.platform_require
|
27
|
+
end
|
28
|
+
alias_method :pr, :platform_require
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
@@ -0,0 +1,73 @@
|
|
1
|
+
module Minitest
|
2
|
+
class Assertion < Exception
|
3
|
+
def location
|
4
|
+
last_before_assertion = ""
|
5
|
+
self.backtrace.reverse_each do |s|
|
6
|
+
break if s =~ /in .(_?assert|_?refute|flunk|pass|fail|raise|must|wont)/
|
7
|
+
last_before_assertion = s
|
8
|
+
end
|
9
|
+
last_before_assertion.sub(/:in .*$/, "")
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
module AssTests
|
15
|
+
module Assertions
|
16
|
+
# TODO: It works bad
|
17
|
+
def _assert_xml_type(exp, obj, mess = nil)
|
18
|
+
act = ole_connector.xmlTypeOf(obj).typeName
|
19
|
+
mess = message(mess) do
|
20
|
+
"Expected #{exp} xml type but #{act} given"
|
21
|
+
end
|
22
|
+
assert exp == act, mess
|
23
|
+
end
|
24
|
+
|
25
|
+
def _assert_ref_empty(obj, mess = nil)
|
26
|
+
mess = message(mess) {"Ref must be empty"}
|
27
|
+
assert obj.ref.IsEmpty, mess
|
28
|
+
end
|
29
|
+
|
30
|
+
def _refute_ref_empty(obj, mess = nil)
|
31
|
+
mess = message(mess) {"Ref must not be empty"}
|
32
|
+
refute obj.ref.IsEmpty, mess
|
33
|
+
end
|
34
|
+
|
35
|
+
def _assert_equal(exp, act, mess = nil)
|
36
|
+
fail_not_comparable(exp, act) if not_comparable?(exp, act)
|
37
|
+
exp_ = to_comparable(exp)
|
38
|
+
act_ = to_comparable(act)
|
39
|
+
mess = message(mess, Minitest::Assertions::E){diff exp_, act_}
|
40
|
+
assert exp_ == act_, mess
|
41
|
+
end
|
42
|
+
|
43
|
+
def to_comparable(obj)
|
44
|
+
return obj unless obj.is_a? WIN32OLE
|
45
|
+
return obj.__real_obj__ if obj.__ruby__?
|
46
|
+
# TODO: make comparsation ruby object from internal Ass string
|
47
|
+
r = {}
|
48
|
+
r[:as_string] = ole_connector.sTring obj
|
49
|
+
r[:xml_type] = ole_connector.xmlTypeOf(obj).typeName
|
50
|
+
r[:as_string_internal] = ole_connector.ValueToStringInternal obj
|
51
|
+
r
|
52
|
+
end
|
53
|
+
private :to_comparable
|
54
|
+
|
55
|
+
def not_comparable?(exp, act)
|
56
|
+
is_ruby?(exp) ^ is_ruby?(act)
|
57
|
+
end
|
58
|
+
private :not_comparable?
|
59
|
+
|
60
|
+
def is_ruby?(obj)
|
61
|
+
!obj.is_a? WIN32OLE or obj.__ruby__?
|
62
|
+
end
|
63
|
+
private :is_ruby?
|
64
|
+
|
65
|
+
def fail_not_comparable(exp, act)
|
66
|
+
fail ArgumentError,
|
67
|
+
"Not comparable types `#{exp.__real_object__.class}'"\
|
68
|
+
" and `#{act.__real_object__.class}'"
|
69
|
+
end
|
70
|
+
private :fail_not_comparable
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
metadata
ADDED
@@ -0,0 +1,194 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ass_tests
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0.alpha
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Leonid Vlasov
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-12-09 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: ass_launcher
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: ass_maintainer-info_base
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: minitest
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>'
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '5'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>'
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '5'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: minitest-hooks
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: bundler
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ~>
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '1.10'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ~>
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '1.10'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rake
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ~>
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '10.0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ~>
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '10.0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: simplecov
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - '>='
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: pry
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - '>='
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: mocha
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - '>='
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - '>='
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
description: It make possible to write tests for 1C:Enterprise on Ruby easy. Access
|
140
|
+
to 1C runtime via OLE. Works only in Windows or Cygwin!!!
|
141
|
+
email:
|
142
|
+
- leoniv.vlasov@gmail.com
|
143
|
+
executables: []
|
144
|
+
extensions: []
|
145
|
+
extra_rdoc_files: []
|
146
|
+
files:
|
147
|
+
- .gitignore
|
148
|
+
- .simplecov
|
149
|
+
- .travis.yml
|
150
|
+
- Gemfile
|
151
|
+
- README.md
|
152
|
+
- Rakefile
|
153
|
+
- ass_tests.gemspec
|
154
|
+
- bin/console
|
155
|
+
- bin/setup
|
156
|
+
- examples/describe_infobase.rb
|
157
|
+
- lib/ass_tests.rb
|
158
|
+
- lib/ass_tests/ass_dummy.rb
|
159
|
+
- lib/ass_tests/config.rb
|
160
|
+
- lib/ass_tests/externals.rb
|
161
|
+
- lib/ass_tests/fixt.rb
|
162
|
+
- lib/ass_tests/info_bases.rb
|
163
|
+
- lib/ass_tests/info_bases/info_base.rb
|
164
|
+
- lib/ass_tests/mini_test.rb
|
165
|
+
- lib/ass_tests/minitest.rb
|
166
|
+
- lib/ass_tests/minitest/assertions.rb
|
167
|
+
- lib/ass_tests/minitest/autorun.rb
|
168
|
+
- lib/ass_tests/version.rb
|
169
|
+
homepage: https://github.com/leoniv/ass_tests
|
170
|
+
licenses: []
|
171
|
+
metadata: {}
|
172
|
+
post_install_message:
|
173
|
+
rdoc_options: []
|
174
|
+
require_paths:
|
175
|
+
- lib
|
176
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - '>='
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0'
|
181
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
182
|
+
requirements:
|
183
|
+
- - '>'
|
184
|
+
- !ruby/object:Gem::Version
|
185
|
+
version: 1.3.1
|
186
|
+
requirements: []
|
187
|
+
rubyforge_project:
|
188
|
+
rubygems_version: 2.0.14
|
189
|
+
signing_key:
|
190
|
+
specification_version: 4
|
191
|
+
summary: Framework for unit testing code written on 1C:Enterprise embedded programming
|
192
|
+
language
|
193
|
+
test_files: []
|
194
|
+
has_rdoc:
|