X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=test%2Ftest_journal.rb;h=73dbcf42e4ecd80b61933e693e3a537bbb82dbc5;hb=7bee70f012b85c03f73fa3e765417a939e02a5cf;hp=374973519300226f9e32f8705124013969d14a48;hpb=85bfb8405528b2da203291b5671f9077d5b62742;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git diff --git a/test/test_journal.rb b/test/test_journal.rb index 37497351..73dbcf42 100644 --- a/test/test_journal.rb +++ b/test/test_journal.rb @@ -1,10 +1,17 @@ $:.unshift File.join(File.dirname(__FILE__), '../lib') +module Irc +class Bot + module Config + @@datadir = File.expand_path(File.dirname($0) + '/../data/rbot') + @@coredir = File.expand_path(File.dirname($0) + '/../lib/rbot/core') + end +end +end + require 'test/unit' require 'rbot/ircbot' require 'rbot/journal' -require 'rbot/journal/postgres.rb' -require 'rbot/journal/mongo.rb' require 'benchmark' @@ -314,6 +321,8 @@ module JournalStorageTestMixin assert_equal(2, msgs.length) assert_equal('bar', msgs.first['message']) assert_equal('baz', msgs.last['message']) + + journal.ensure_payload_index('foo.bar.baz') end NUM=100 # 1_000_000 @@ -362,58 +371,63 @@ module JournalStorageTestMixin end -if ENV['PG_URI'] -class JournalStoragePostgresTest < Test::Unit::TestCase +begin + require 'rbot/journal/postgres.rb' + if ENV['PG_URI'] + class JournalStoragePostgresTest < Test::Unit::TestCase - include JournalStorageTestMixin + include JournalStorageTestMixin - def setup - @storage = Storage::PostgresStorage.new( - uri: ENV['PG_URI'] || 'postgresql://localhost/rbot_journal', - drop: true) - end - - def test_query_to_sql - q = Query.define do - id 'foo' - id 'bar', 'baz' - topic 'log.irc.*' - topic 'log.core', 'baz' - timestamp from: Time.now, to: Time.now + 60 * 10 - payload 'action': :privmsg, 'alice': 'bob' - payload 'channel': '#rbot' - payload 'foo.bar': 'baz' - end - sql = @storage.query_to_sql(q) - assert_equal("(id = $1 OR id = $2 OR id = $3) AND (topic ILIKE $4 OR topic ILIKE $5 OR topic ILIKE $6) AND (timestamp >= $7 AND timestamp <= $8) AND (payload->>'action' = $9 OR payload->>'alice' = $10 OR payload->>'channel' = $11 OR payload->'foo'->>'bar' = $12)", sql[0]) - q = Query.define do - id 'foo' + def setup + @storage = Storage::PostgresStorage.new( + uri: ENV['PG_URI'] || 'postgresql://localhost/rbot_journal', + drop: true) end - assert_equal('(id = $1)', @storage.query_to_sql(q)[0]) - q = Query.define do - topic 'foo.*.bar' + + def test_query_to_sql + q = Query.define do + id 'foo' + id 'bar', 'baz' + topic 'log.irc.*' + topic 'log.core', 'baz' + timestamp from: Time.now, to: Time.now + 60 * 10 + payload 'action': :privmsg, 'alice': 'bob' + payload 'channel': '#rbot' + payload 'foo.bar': 'baz' + end + sql = @storage.query_to_sql(q) + assert_equal("(id = $1 OR id = $2 OR id = $3) AND (topic ILIKE $4 OR topic ILIKE $5 OR topic ILIKE $6) AND (timestamp >= $7 AND timestamp <= $8) AND (payload->>'action' = $9 OR payload->>'alice' = $10 OR payload->>'channel' = $11 OR payload->'foo'->>'bar' = $12)", sql[0]) + q = Query.define do + id 'foo' + end + assert_equal('(id = $1)', @storage.query_to_sql(q)[0]) + q = Query.define do + topic 'foo.*.bar' + end + assert_equal('(topic ILIKE $1)', @storage.query_to_sql(q)[0]) + assert_equal(['foo.%.bar'], @storage.query_to_sql(q)[1]) end - assert_equal('(topic ILIKE $1)', @storage.query_to_sql(q)[0]) - assert_equal(['foo.%.bar'], @storage.query_to_sql(q)[1]) - end -end -else - puts 'NOTE: Set PG_URI environment variable to test postgresql storage.' -end + end + else + puts 'NOTE: Set PG_URI environment variable to test postgresql storage.' + end +rescue Exception; end -if ENV['MONGO_URI'] -class JournalStorageMongoTest < Test::Unit::TestCase +begin + require 'rbot/journal/mongo.rb' + if ENV['MONGO_URI'] + class JournalStorageMongoTest < Test::Unit::TestCase - include JournalStorageTestMixin + include JournalStorageTestMixin - def setup - @storage = Storage::MongoStorage.new( - uri: ENV['MONGO_URI'] || 'mongodb://127.0.0.1:27017/rbot', - drop: true) + def setup + @storage = Storage::MongoStorage.new( + uri: ENV['MONGO_URI'] || 'mongodb://127.0.0.1:27017/rbot', + drop: true) + end end -end -else - puts 'NOTE: Set MONGO_URI environment variable to test postgresql storage.' -end - + else + puts 'NOTE: Set MONGO_URI environment variable to test postgresql storage.' + end +rescue Exception; end