sqlite3 1.3.5 → 1.3.13

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,6 @@
1
1
  require 'helper'
2
2
 
3
- class TC_ResultSet < Test::Unit::TestCase
3
+ class TC_ResultSet < SQLite3::TestCase
4
4
  def setup
5
5
  @db = SQLite3::Database.new(":memory:")
6
6
  @db.transaction do
@@ -98,8 +98,11 @@ class TC_ResultSet < Test::Unit::TestCase
98
98
  def test_next_results_as_hash
99
99
  @db.results_as_hash = true
100
100
  @result.reset( 1 )
101
- assert_equal( { "a" => 1, "b" => "foo", 0 => 1, 1 => "foo" },
102
- @result.next )
101
+ hash = @result.next
102
+ assert_equal( { "a" => 1, "b" => "foo" },
103
+ hash )
104
+ assert_equal hash[0], 1
105
+ assert_equal hash[1], "foo"
103
106
  end
104
107
 
105
108
  def test_tainted_results_as_hash
@@ -1,6 +1,6 @@
1
- require File.join(File.dirname(__FILE__), 'helper')
1
+ require 'helper'
2
2
 
3
- class TC_Statement < Test::Unit::TestCase
3
+ class TC_Statement < SQLite3::TestCase
4
4
  def setup
5
5
  @db = SQLite3::Database.new(":memory:")
6
6
  @db.transaction do
@@ -0,0 +1,37 @@
1
+ require 'helper'
2
+
3
+ module SQLite3
4
+ class TestResultSet < SQLite3::TestCase
5
+ def test_each_hash
6
+ db = SQLite3::Database.new ':memory:'
7
+ db.execute "create table foo ( a integer primary key, b text )"
8
+ list = ('a'..'z').to_a
9
+ list.each do |t|
10
+ db.execute "insert into foo (b) values (\"#{t}\")"
11
+ end
12
+
13
+ rs = db.prepare('select * from foo').execute
14
+ rs.each_hash do |hash|
15
+ assert_equal list[hash['a'] - 1], hash['b']
16
+ end
17
+ end
18
+
19
+ def test_next_hash
20
+ db = SQLite3::Database.new ':memory:'
21
+ db.execute "create table foo ( a integer primary key, b text )"
22
+ list = ('a'..'z').to_a
23
+ list.each do |t|
24
+ db.execute "insert into foo (b) values (\"#{t}\")"
25
+ end
26
+
27
+ rs = db.prepare('select * from foo').execute
28
+ rows = []
29
+ while row = rs.next_hash
30
+ rows << row
31
+ end
32
+ rows.each do |hash|
33
+ assert_equal list[hash['a'] - 1], hash['b']
34
+ end
35
+ end
36
+ end
37
+ end
data/test/test_sqlite3.rb CHANGED
@@ -1,9 +1,21 @@
1
1
  require 'helper'
2
2
 
3
3
  module SQLite3
4
- class TestSQLite3 < Test::Unit::TestCase
4
+ class TestSQLite3 < SQLite3::TestCase
5
5
  def test_libversion
6
6
  assert_not_nil SQLite3.libversion
7
7
  end
8
+
9
+ def test_threadsafe
10
+ assert_not_nil SQLite3.threadsafe
11
+ end
12
+
13
+ def test_threadsafe?
14
+ if SQLite3.threadsafe > 0
15
+ assert SQLite3.threadsafe?
16
+ else
17
+ refute SQLite3.threadsafe?
18
+ end
19
+ end
8
20
  end
9
21
  end
@@ -1,18 +1,42 @@
1
1
  require 'helper'
2
2
 
3
3
  module SQLite3
4
- class TestStatement < Test::Unit::TestCase
4
+ class TestStatement < SQLite3::TestCase
5
5
  def setup
6
6
  @db = SQLite3::Database.new(':memory:')
7
7
  @stmt = SQLite3::Statement.new(@db, "select 'foo'")
8
8
  end
9
9
 
10
+ def test_double_close_does_not_segv
11
+ @db.execute 'CREATE TABLE "things" ("number" float NOT NULL)'
12
+
13
+ stmt = @db.prepare 'INSERT INTO things (number) VALUES (?)'
14
+ assert_raises(SQLite3::ConstraintException) { stmt.execute(nil) }
15
+
16
+ stmt.close
17
+
18
+ assert_raises(SQLite3::Exception) { stmt.close }
19
+ end
20
+
10
21
  def test_raises_type_error
11
22
  assert_raises(TypeError) do
12
23
  SQLite3::Statement.new( @db, nil )
13
24
  end
14
25
  end
15
26
 
27
+ def test_insert_duplicate_records
28
+ @db.execute 'CREATE TABLE "things" ("name" varchar(20) CONSTRAINT "index_things_on_name" UNIQUE)'
29
+ stmt = @db.prepare("INSERT INTO things(name) VALUES(?)")
30
+ stmt.execute('ruby')
31
+
32
+ exception = assert_raises(SQLite3::ConstraintException) { stmt.execute('ruby') }
33
+ # SQLite 3.8.2 returns new error message:
34
+ # UNIQUE constraint failed: *table_name*.*column_name*
35
+ # Older versions of SQLite return:
36
+ # column *column_name* is not unique
37
+ assert_match(/(column(s)? .* (is|are) not unique|UNIQUE constraint failed: .*)/, exception.message)
38
+ end
39
+
16
40
  ###
17
41
  # This method may not exist depending on how sqlite3 was compiled
18
42
  def test_database_name
@@ -216,9 +240,7 @@ module SQLite3
216
240
  stmt.execute('employee-1')
217
241
  stmt.execute('employee-1') rescue SQLite3::ConstraintException
218
242
  stmt.reset!
219
- assert_nothing_raised(SQLite3::ConstraintException) {
220
- stmt.execute('employee-2')
221
- }
243
+ assert stmt.execute('employee-2')
222
244
  end
223
245
 
224
246
  def test_clear_bindings
@@ -1,7 +1,7 @@
1
1
  require 'helper'
2
2
 
3
3
  module SQLite3
4
- class TestStatementExecute < Test::Unit::TestCase
4
+ class TestStatementExecute < SQLite3::TestCase
5
5
  def setup
6
6
  @db = SQLite3::Database.new(':memory:')
7
7
  @db.execute_batch(
metadata CHANGED
@@ -1,114 +1,143 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: sqlite3
3
- version: !ruby/object:Gem::Version
4
- hash: 17
5
- prerelease:
6
- segments:
7
- - 1
8
- - 3
9
- - 5
10
- version: 1.3.5
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.3.13
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - Jamis Buck
14
8
  - Luis Lavena
15
9
  - Aaron Patterson
16
10
  autorequire:
17
11
  bindir: bin
18
12
  cert_chain: []
19
-
20
- date: 2011-12-03 00:00:00 Z
21
- dependencies:
22
- - !ruby/object:Gem::Dependency
13
+ date: 2017-01-04 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: minitest
17
+ requirement: !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - "~>"
20
+ - !ruby/object:Gem::Version
21
+ version: '5.9'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - "~>"
27
+ - !ruby/object:Gem::Version
28
+ version: '5.9'
29
+ - !ruby/object:Gem::Dependency
30
+ name: rdoc
31
+ requirement: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - "~>"
34
+ - !ruby/object:Gem::Version
35
+ version: '4.0'
36
+ type: :development
37
+ prerelease: false
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - "~>"
41
+ - !ruby/object:Gem::Version
42
+ version: '4.0'
43
+ - !ruby/object:Gem::Dependency
23
44
  name: rake-compiler
45
+ requirement: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: 0.9.3
50
+ type: :development
24
51
  prerelease: false
25
- requirement: &id001 !ruby/object:Gem::Requirement
26
- none: false
27
- requirements:
28
- - - ~>
29
- - !ruby/object:Gem::Version
30
- hash: 3
31
- segments:
32
- - 0
33
- - 7
34
- - 0
35
- version: 0.7.0
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - "~>"
55
+ - !ruby/object:Gem::Version
56
+ version: 0.9.3
57
+ - !ruby/object:Gem::Dependency
58
+ name: rake-compiler-dock
59
+ requirement: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - "~>"
62
+ - !ruby/object:Gem::Version
63
+ version: 0.5.2
36
64
  type: :development
37
- version_requirements: *id001
38
- - !ruby/object:Gem::Dependency
39
- name: mini_portile
40
65
  prerelease: false
41
- requirement: &id002 !ruby/object:Gem::Requirement
42
- none: false
43
- requirements:
44
- - - ~>
45
- - !ruby/object:Gem::Version
46
- hash: 19
47
- segments:
48
- - 0
49
- - 2
50
- - 2
51
- version: 0.2.2
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - "~>"
69
+ - !ruby/object:Gem::Version
70
+ version: 0.5.2
71
+ - !ruby/object:Gem::Dependency
72
+ name: mini_portile
73
+ requirement: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - "~>"
76
+ - !ruby/object:Gem::Version
77
+ version: 0.6.2
52
78
  type: :development
53
- version_requirements: *id002
54
- - !ruby/object:Gem::Dependency
55
- name: hoe
56
79
  prerelease: false
57
- requirement: &id003 !ruby/object:Gem::Requirement
58
- none: false
59
- requirements:
60
- - - ~>
61
- - !ruby/object:Gem::Version
62
- hash: 27
63
- segments:
64
- - 2
65
- - 12
66
- version: "2.12"
80
+ version_requirements: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - "~>"
83
+ - !ruby/object:Gem::Version
84
+ version: 0.6.2
85
+ - !ruby/object:Gem::Dependency
86
+ name: hoe-bundler
87
+ requirement: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - "~>"
90
+ - !ruby/object:Gem::Version
91
+ version: '1.0'
67
92
  type: :development
68
- version_requirements: *id003
69
- - !ruby/object:Gem::Dependency
70
- name: rdoc
71
93
  prerelease: false
72
- requirement: &id004 !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ~>
76
- - !ruby/object:Gem::Version
77
- hash: 19
78
- segments:
79
- - 3
80
- - 10
81
- version: "3.10"
94
+ version_requirements: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - "~>"
97
+ - !ruby/object:Gem::Version
98
+ version: '1.0'
99
+ - !ruby/object:Gem::Dependency
100
+ name: hoe
101
+ requirement: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - "~>"
104
+ - !ruby/object:Gem::Version
105
+ version: '3.15'
82
106
  type: :development
83
- version_requirements: *id004
107
+ prerelease: false
108
+ version_requirements: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - "~>"
111
+ - !ruby/object:Gem::Version
112
+ version: '3.15'
84
113
  description: |-
85
114
  This module allows Ruby programs to interface with the SQLite3
86
115
  database engine (http://www.sqlite.org). You must have the
87
116
  SQLite engine installed in order to build this module.
88
-
117
+
89
118
  Note that this module is only compatible with SQLite 3.6.16 or newer.
90
- email:
119
+ email:
91
120
  - jamis@37signals.com
92
121
  - luislavena@gmail.com
93
122
  - aaron@tenderlovemaking.com
94
123
  executables: []
95
-
96
- extensions:
124
+ extensions:
97
125
  - ext/sqlite3/extconf.rb
98
- extra_rdoc_files:
126
+ extra_rdoc_files:
127
+ - API_CHANGES.rdoc
128
+ - CHANGELOG.rdoc
99
129
  - Manifest.txt
100
130
  - README.rdoc
101
- - CHANGELOG.rdoc
102
- - API_CHANGES.rdoc
103
- - ext/sqlite3/sqlite3.c
104
131
  - ext/sqlite3/backup.c
105
- - ext/sqlite3/statement.c
106
132
  - ext/sqlite3/database.c
107
133
  - ext/sqlite3/exception.c
108
- files:
134
+ - ext/sqlite3/sqlite3.c
135
+ - ext/sqlite3/statement.c
136
+ files:
109
137
  - API_CHANGES.rdoc
110
138
  - CHANGELOG.rdoc
111
139
  - ChangeLog.cvs
140
+ - Gemfile
112
141
  - LICENSE
113
142
  - Manifest.txt
114
143
  - README.rdoc
@@ -153,60 +182,35 @@ files:
153
182
  - test/test_integration_pending.rb
154
183
  - test/test_integration_resultset.rb
155
184
  - test/test_integration_statement.rb
185
+ - test/test_result_set.rb
156
186
  - test/test_sqlite3.rb
157
187
  - test/test_statement.rb
158
188
  - test/test_statement_execute.rb
159
- - .gemtest
160
- homepage: http://github.com/luislavena/sqlite3-ruby
161
- licenses: []
162
-
189
+ homepage: https://github.com/sparklemotion/sqlite3-ruby
190
+ licenses:
191
+ - BSD-3
192
+ metadata: {}
163
193
  post_install_message:
164
- rdoc_options:
165
- - --main
194
+ rdoc_options:
195
+ - "--main"
166
196
  - README.rdoc
167
- require_paths:
197
+ require_paths:
168
198
  - lib
169
- required_ruby_version: !ruby/object:Gem::Requirement
170
- none: false
171
- requirements:
199
+ required_ruby_version: !ruby/object:Gem::Requirement
200
+ requirements:
172
201
  - - ">="
173
- - !ruby/object:Gem::Version
174
- hash: 57
175
- segments:
176
- - 1
177
- - 8
178
- - 7
202
+ - !ruby/object:Gem::Version
179
203
  version: 1.8.7
180
- required_rubygems_version: !ruby/object:Gem::Requirement
181
- none: false
182
- requirements:
204
+ required_rubygems_version: !ruby/object:Gem::Requirement
205
+ requirements:
183
206
  - - ">="
184
- - !ruby/object:Gem::Version
185
- hash: 17
186
- segments:
187
- - 1
188
- - 3
189
- - 5
207
+ - !ruby/object:Gem::Version
190
208
  version: 1.3.5
191
209
  requirements: []
192
-
193
- rubyforge_project: sqlite3
194
- rubygems_version: 1.8.12
210
+ rubyforge_project:
211
+ rubygems_version: 2.6.8
195
212
  signing_key:
196
- specification_version: 3
197
- summary: This module allows Ruby programs to interface with the SQLite3 database engine (http://www.sqlite.org)
198
- test_files:
199
- - test/test_database.rb
200
- - test/test_integration_open_close.rb
201
- - test/test_database_readonly.rb
202
- - test/test_statement.rb
203
- - test/test_integration_resultset.rb
204
- - test/test_deprecated.rb
205
- - test/test_backup.rb
206
- - test/test_encoding.rb
207
- - test/test_sqlite3.rb
208
- - test/test_collation.rb
209
- - test/test_integration.rb
210
- - test/test_statement_execute.rb
211
- - test/test_integration_statement.rb
212
- - test/test_integration_pending.rb
213
+ specification_version: 4
214
+ summary: This module allows Ruby programs to interface with the SQLite3 database engine
215
+ (http://www.sqlite.org)
216
+ test_files: []