Fixes queries threshold specs

2.0
Fernando Espinosa 12 years ago
parent 4c10f9fcc9
commit 4ec70791a6

@ -7,20 +7,20 @@ module CartoDB
$threshold.get(key(user_id, args_for_keys)).to_i
end
end
def self.incr(user_id, type_of_query, time_spent = nil)
return unless %W{ select insert update delete other }.include?(type_of_query)
$threshold.incr(key(user_id, "total"))
$threshold.incr(key(user_id, Date.today.strftime("%Y-%m-%d")))
$threshold.incr(key(user_id, Date.today.strftime("%Y-%m")))
$threshold.incr(key(user_id, Date.today.strftime("%Y-%m"), type_of_query))
$threshold.incr(key(user_id, "total"))
$threshold.incr(key(user_id, Date.today.strftime("%Y-%m-%d")))
$threshold.incr(key(user_id, Date.today.strftime("%Y-%m")))
$threshold.incr(key(user_id, Date.today.strftime("%Y-%m"), type_of_query))
increase_time(user_id, time_spent) if time_spent
end
def self.analyze(user_id, sql, time = nil)
return if sql.blank?
increase_time(user_id, time) if time
sql.split(';').each do |raw_query|
raw_query.strip!
next if raw_query.blank?
@ -37,13 +37,13 @@ module CartoDB
end
end
end
private
def self.key(user_id, *args_for_keys)
"rails:users:#{user_id}:queries:#{args_for_keys.join(':')}"
end
def self.increase_time(user_id, time)
old_time = $threshold.get(key(user_id, Date.today.strftime("%Y-%m-%d"),"time")).to_f
$threshold.set(key(user_id, Date.today.strftime("%Y-%m-%d"),"time"),old_time + time.to_f)
@ -51,4 +51,4 @@ module CartoDB
$threshold.set(key(user_id, Date.today.strftime("%Y-%m"),"time"),old_time + time.to_f)
end
end
end
end

@ -3,6 +3,11 @@
require 'spec_helper'
describe CartoDB::QueriesThreshold do
before :each do
$threshold.flushdb
end
it "should get and increase" do
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m"), "other").should == 0
CartoDB::QueriesThreshold.incr(1, "other")
@ -16,15 +21,15 @@ describe CartoDB::QueriesThreshold do
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m"), "time").should == 0.005
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m-%d"), "time").should == 0.005
end
it "should increase the total absolute and the total of the day and the month" do
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m"), "other").should == 0
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m")).should == 0
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m-%d")).should == 0
CartoDB::QueriesThreshold.get(1, "total").should == 0
CartoDB::QueriesThreshold.incr(1, "other")
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m"), "other").should == 1
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m")).should == 1
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m-%d")).should == 1
@ -40,9 +45,9 @@ describe CartoDB::QueriesThreshold do
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m")).should == 0
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m-%d")).should == 0
CartoDB::QueriesThreshold.get(1, "total").should == 0
CartoDB::QueriesThreshold.incr(1, "select")
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m"), "select").should == 1
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m"), "insert").should == 0
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m"), "update").should == 0
@ -52,7 +57,7 @@ describe CartoDB::QueriesThreshold do
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m-%d")).should == 1
CartoDB::QueriesThreshold.get(1, "total").should == 1
end
it "should increase insert queries" do
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m"), "select").should == 0
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m"), "insert").should == 0
@ -62,9 +67,9 @@ describe CartoDB::QueriesThreshold do
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m")).should == 0
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m-%d")).should == 0
CartoDB::QueriesThreshold.get(1, "total").should == 0
CartoDB::QueriesThreshold.incr(1, "insert")
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m"), "select").should == 0
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m"), "insert").should == 1
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m"), "update").should == 0
@ -74,7 +79,7 @@ describe CartoDB::QueriesThreshold do
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m-%d")).should == 1
CartoDB::QueriesThreshold.get(1, "total").should == 1
end
it "should increase update queries" do
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m"), "select").should == 0
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m"), "insert").should == 0
@ -84,9 +89,9 @@ describe CartoDB::QueriesThreshold do
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m")).should == 0
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m-%d")).should == 0
CartoDB::QueriesThreshold.get(1, "total").should == 0
CartoDB::QueriesThreshold.incr(1, "update")
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m"), "select").should == 0
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m"), "insert").should == 0
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m"), "update").should == 1
@ -96,7 +101,7 @@ describe CartoDB::QueriesThreshold do
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m-%d")).should == 1
CartoDB::QueriesThreshold.get(1, "total").should == 1
end
it "should increase delete queries" do
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m"), "select").should == 0
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m"), "insert").should == 0
@ -106,9 +111,9 @@ describe CartoDB::QueriesThreshold do
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m")).should == 0
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m-%d")).should == 0
CartoDB::QueriesThreshold.get(1, "total").should == 0
CartoDB::QueriesThreshold.incr(1, "delete")
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m"), "select").should == 0
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m"), "insert").should == 0
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m"), "update").should == 0
@ -118,7 +123,7 @@ describe CartoDB::QueriesThreshold do
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m-%d")).should == 1
CartoDB::QueriesThreshold.get(1, "total").should == 1
end
it "should increase other queries" do
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m"), "select").should == 0
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m"), "insert").should == 0
@ -128,9 +133,9 @@ describe CartoDB::QueriesThreshold do
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m")).should == 0
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m-%d")).should == 0
CartoDB::QueriesThreshold.get(1, "total").should == 0
CartoDB::QueriesThreshold.incr(1, "other")
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m"), "select").should == 0
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m"), "insert").should == 0
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m"), "update").should == 0
@ -140,7 +145,7 @@ describe CartoDB::QueriesThreshold do
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m-%d")).should == 1
CartoDB::QueriesThreshold.get(1, "total").should == 1
end
it "should increase multiple times" do
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m"), "select").should == 0
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m"), "insert").should == 0
@ -150,11 +155,11 @@ describe CartoDB::QueriesThreshold do
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m")).should == 0
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m-%d")).should == 0
CartoDB::QueriesThreshold.get(1, "total").should == 0
CartoDB::QueriesThreshold.incr(1, "select")
CartoDB::QueriesThreshold.incr(1, "select")
CartoDB::QueriesThreshold.incr(1, "select")
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m"), "select").should == 3
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m"), "insert").should == 0
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m"), "update").should == 0
@ -164,7 +169,7 @@ describe CartoDB::QueriesThreshold do
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m-%d")).should == 3
CartoDB::QueriesThreshold.get(1, "total").should == 3
end
it "should implement a query analyzer to increment the threshold for raw queries" do
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m"), "select").should == 0
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m"), "insert").should == 0
@ -174,13 +179,13 @@ describe CartoDB::QueriesThreshold do
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m")).should == 0
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m-%d")).should == 0
CartoDB::QueriesThreshold.get(1, "total").should == 0
CartoDB::QueriesThreshold.analyze(1, "select id from wadus")
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m"), "select").should == 1
CartoDB::QueriesThreshold.analyze(1, "select id from wadus; select what from tradus")
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m"), "select").should == 3
CartoDB::QueriesThreshold.analyze(1, "insert into wadus (name, address) values ('a name', 'an address'); ")
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m"), "select").should == 3
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m"), "insert").should == 1
@ -201,6 +206,6 @@ describe CartoDB::QueriesThreshold do
CartoDB::QueriesThreshold.get(1, Date.today.strftime("%Y-%m-%d")).should == 8
CartoDB::QueriesThreshold.get(1, "total").should == 8
end
end

Loading…
Cancel
Save