mirror of https://github.com/rspamd/rspamd.git
Rapid spam filtering system
https://rspamd.com/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.8 KiB
50 lines
1.8 KiB
context("Sqlite3 API", function()
|
|
local sqlite3 = require "rspamd_sqlite3"
|
|
local tmpdir = os.getenv("TMPDIR") or "/tmp"
|
|
|
|
test("Sqlite3 open", function()
|
|
os.remove(tmpdir .. '/rspamd_unit_test_sqlite3.sqlite')
|
|
local db = sqlite3.open(tmpdir .. '/rspamd_unit_test_sqlite3.sqlite')
|
|
assert_not_nil(db, "should be able to create sqlite3 db")
|
|
db = sqlite3.open('/non/existent/path/rspamd_unit_test_sqlite3.sqlite')
|
|
assert_nil(db, "should not be able to create sqlite3 db")
|
|
os.remove(tmpdir .. '/rspamd_unit_test_sqlite3.sqlite')
|
|
end)
|
|
|
|
test("Sqlite3 query", function()
|
|
os.remove(tmpdir .. '/rspamd_unit_test_sqlite3-1.sqlite')
|
|
local db = sqlite3.open(tmpdir .. '/rspamd_unit_test_sqlite3-1.sqlite')
|
|
assert_not_nil(db, "should be able to create sqlite3 db")
|
|
|
|
local ret = db:sql([[
|
|
CREATE TABLE x (id INT, value TEXT);
|
|
]])
|
|
assert_true(ret, "should be able to create table")
|
|
local ret = db:sql([[
|
|
INSERT INTO x VALUES (?1, ?2);
|
|
]], 1, 'test')
|
|
assert_true(ret, "should be able to insert row")
|
|
os.remove(tmpdir .. '/rspamd_unit_test_sqlite3-1.sqlite')
|
|
end)
|
|
|
|
test("Sqlite3 rows", function()
|
|
os.remove(tmpdir .. '/rspamd_unit_test_sqlite3-2.sqlite')
|
|
local db = sqlite3.open(tmpdir .. '/rspamd_unit_test_sqlite3-2.sqlite')
|
|
assert_not_nil(db, "should be able to create sqlite3 db")
|
|
|
|
local ret = db:sql([[
|
|
CREATE TABLE x (id INT, value TEXT);
|
|
]])
|
|
assert_true(ret, "should be able to create table")
|
|
local ret = db:sql([[
|
|
INSERT INTO x VALUES (?1, ?2);
|
|
]], 1, 'test')
|
|
assert_true(ret, "should be able to insert row")
|
|
|
|
for row in db:rows([[SELECT * FROM x;]]) do
|
|
assert_equal(row.id, '1')
|
|
assert_equal(row.value, 'test')
|
|
end
|
|
os.remove(tmpdir .. '/rspamd_unit_test_sqlite3-2.sqlite')
|
|
end)
|
|
end)
|