mail_spy 0.1.0 → 0.1.1

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.
data/lib/mail_spy.rb CHANGED
@@ -5,6 +5,7 @@ require 'work_queue'
5
5
  require "mongoid"
6
6
  require "mail_spy/engine"
7
7
  require "mail_spy/manager"
8
+ require "zurb-foundation"
8
9
  module MailSpy
9
10
 
10
11
  extend MailSpy::Manager
@@ -79,51 +79,32 @@ module MailSpy
79
79
  # Batches through all the emails that were scheduled and have come due
80
80
  # sends them out (step many at a time). Don't thread this method, instead
81
81
  # use the parameters to control concurrency
82
- def send_outstanding_emails(step=100, num_threads=50)
82
+ def send_outstanding_emails(step=200, num_threads=100, num_workers=1)
83
83
  success = false
84
84
  raise "No Email service providers installed" unless MailSpy.esps.present?
85
85
 
86
86
  return if MailSpy::ProcessLog.currently_processing?
87
+ current_time = DateTime.now
87
88
  current_process = MailSpy::ProcessLog.create!(
88
89
  {
89
- :start => Time.now,
90
+ :start => current_time,
90
91
  :running => true,
91
92
  })
92
93
 
93
- wq = WorkQueue.new(num_threads, step*2)
94
- current_time = DateTime.now
95
- offset = 0
96
- processed = 0
97
-
98
- # Helper function for setting present values
99
- def set_if_present(email, pony_hash, pony_key, email_key=nil)
100
- email_key = pony_key if email_key.nil?
101
- value = email.send("#{email_key}")
102
- pony_hash[pony_key] = value if value.present?
103
- end
94
+ count = MailSpy::Email.where(:schedule_at.lte => current_time, :sent => false, :failed => false).count
95
+ first = MailSpy::Email.where(:schedule_at.lte => current_time, :sent => false, :failed => false).first
96
+ division = (count / num_workers).to_i
104
97
 
105
- while true
106
- emails = MailSpy::Email.
107
- limit(step).offset(offset).asc(:_id).
108
- where(:schedule_at.lte => current_time, :sent => false, :failed => false).all
109
- break if emails.count <= 0 #returns enumerator which is never blank
110
- emails.each do |email|
111
- processed += 1
112
- wq.enqueue_b do
113
- MailSpy.using_delayed_job ? email.delay.deliver : email.deliver
114
- end
98
+ num_workers.times do |i|
99
+ if MailSpy.using_delayed_job
100
+ Email.delay.deliver_batch(current_time, first._id, (i - 1) * division, division, step, num_threads)
101
+ else
102
+ Email.deliver_batch(current_time, first._id, (i - 1) * division, division, step, num_threads)
115
103
  end
116
-
117
- # We must join here otherwise the next loop email lookup will be in a
118
- # race condition with the results of our worker_queue.
119
- wq.join
120
-
121
- offset += step
122
104
  end
123
105
 
124
106
  success = true
125
- return processed
126
-
107
+ return count
127
108
  ensure
128
109
  if current_process
129
110
  end_time = Time.now
@@ -1,3 +1,3 @@
1
1
  module MailSpy
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -0,0 +1,16 @@
1
+ # encoding: UTF-8
2
+ # This file is auto-generated from the current state of the database. Instead
3
+ # of editing this file, please use the migrations feature of Active Record to
4
+ # incrementally modify your database, and then regenerate this schema definition.
5
+ #
6
+ # Note that this schema.rb definition is the authoritative source for your
7
+ # database schema. If you need to create the application database on another
8
+ # system, you should be using db:schema:load, not running all the migrations
9
+ # from scratch. The latter is a flawed and unsustainable approach (the more migrations
10
+ # you'll amass, the slower it'll run and the greater likelihood for issues).
11
+ #
12
+ # It's strongly recommended to check this file into your version control system.
13
+
14
+ ActiveRecord::Schema.define(:version => 0) do
15
+
16
+ end
@@ -16348,3 +16348,446 @@ MONGODB dummy_test['mail_spy_emails'].remove({})
16348
16348
   (0.0ms) rollback transaction
16349
16349
   (0.1ms) begin transaction
16350
16350
   (0.0ms) rollback transaction
16351
+ MONGODB [WARNING] Please note that logging negatively impacts client-side performance. You should set your logging level no lower than :info in production.
16352
+ MONGODB admin['$cmd'].find({:ismaster=>1}).limit(-1)
16353
+  (0.3ms) begin transaction
16354
+ [AWS S3 200 0.804889] get_bucket_versioning(:bucket_name=>"daviacalendar-mailspy")
16355
+
16356
+ [AWS S3 200 0.096094] head_object(:bucket_name=>"daviacalendar-mailspy",:key=>"tests/a-stream/a-helper_test.html.erb")
16357
+
16358
+ [AWS S3 200 0.146586] get_object(:bucket_name=>"daviacalendar-mailspy",:key=>"tests/a-stream/a-helper_test.html.erb")
16359
+
16360
+ [AWS S3 200 0.090667] get_bucket_versioning(:bucket_name=>"daviacalendar-mailspy")
16361
+
16362
+ [AWS S3 200 0.093591] head_object(:bucket_name=>"daviacalendar-mailspy",:key=>"tests/a-stream/a-helper_test.text.erb")
16363
+
16364
+ [AWS S3 200 0.112830] get_object(:bucket_name=>"daviacalendar-mailspy",:key=>"tests/a-stream/a-helper_test.text.erb")
16365
+
16366
+ MONGODB dummy_test['system.namespaces'].find({})
16367
+ MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f33ad58ba12eb8a08000001'), "to"=>"trcarden@gmail.com", "from"=>"test@test.com", "reply_to"=>"testGuy", "subject"=>"test subject", "campaign"=>"tests", "stream"=>"a-stream", "component"=>"a-helper_test", "schedule_at"=>2012-02-09 11:26:16 UTC, "email_service_provider"=>"sendgrid", "utm_source"=>"mailspy", "utm_medium"=>"email", "utm_campaign"=>"tests", "utm_term"=>"a-stream", "utm_content"=>"a-helper_test", "updated_at"=>2012-02-09 11:26:19 UTC, "created_at"=>2012-02-09 11:26:19 UTC}])
16368
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad58ba12eb8a08000001')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f33ad58ba12eb8a08000001\"}}"}}})
16369
+ Rendered inline template (23.2ms)
16370
+ Rendered inline template (1.3ms)
16371
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16372
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16373
+  (0.1ms) rollback transaction
16374
+  (0.0ms) begin transaction
16375
+ MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f33ad5cba12eb8a08000002'), "to"=>"trcarden@gmail.com", "from"=>"test@test.com", "reply_to"=>"testGuy", "subject"=>"test subject", "campaign"=>"tests", "stream"=>"a-stream", "component"=>"a-helper_test", "schedule_at"=>2012-02-09 11:26:20 UTC, "email_service_provider"=>"sendgrid", "utm_source"=>"mailspy", "utm_medium"=>"email", "utm_campaign"=>"tests", "utm_term"=>"a-stream", "utm_content"=>"a-helper_test", "updated_at"=>2012-02-09 11:26:20 UTC, "created_at"=>2012-02-09 11:26:20 UTC}])
16376
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad5cba12eb8a08000002')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f33ad5cba12eb8a08000002\"}}"}}})
16377
+ MONGODB dummy_test['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
16378
+ Rendered inline template (1.6ms)
16379
+ Rendered inline template (1.3ms)
16380
+
16381
+ Sent mail to trcarden@gmail.com (1343ms)
16382
+ Date: Thu, 09 Feb 2012 03:26:20 -0800
16383
+ From: test@test.com
16384
+ Reply-To: testGuy
16385
+ To: trcarden@gmail.com
16386
+ Message-ID: <4f33ad5cc7d6c_8a0880434f4c906c4@toms-iphone-4.mail>
16387
+ Subject: test subject
16388
+ Mime-Version: 1.0
16389
+ Content-Type: multipart/alternative;
16390
+ boundary="--==_mimepart_4f33ad5caa318_8a0880434f4c90334";
16391
+ charset=UTF-8
16392
+ Content-Transfer-Encoding: 7bit
16393
+ X-SMTPAPI: {"unique_args": {"eid": "4f33ad5cba12eb8a08000002"}}
16394
+
16395
+
16396
+
16397
+ ----==_mimepart_4f33ad5caa318_8a0880434f4c90334
16398
+ Date: Thu, 09 Feb 2012 03:26:20 -0800
16399
+ Mime-Version: 1.0
16400
+ Content-Type: text/plain;
16401
+ charset=UTF-8
16402
+ Content-Transfer-Encoding: 7bit
16403
+ Content-ID: <4f33ad5cb9fe7_8a0880434f4c904c3@toms-iphone-4.mail>
16404
+
16405
+ You should be able to click on the link and have the server record the even
16406
+ and forward you to the correct place.
16407
+
16408
+ A link : <a href="http://localhost:5000/mail/t?eid=4f33ad5cba12eb8a08000002&amp;n=1&amp;url=www.google.com">My home</a>
16409
+ ---------------------------
16410
+
16411
+ You should be able to show images in the email client and have the server
16412
+ track the open
16413
+ A Bug is in the parenthesis (<img src='http://localhost:5000/mail/b?eid=4f33ad5cba12eb8a08000002' style='display:none' width='1' height='1' border='0' />)
16414
+
16415
+
16416
+
16417
+
16418
+ ----==_mimepart_4f33ad5caa318_8a0880434f4c90334
16419
+ Date: Thu, 09 Feb 2012 03:26:20 -0800
16420
+ Mime-Version: 1.0
16421
+ Content-Type: text/html;
16422
+ charset=UTF-8
16423
+ Content-Transfer-Encoding: 7bit
16424
+ Content-ID: <4f33ad5cc2acb_8a0880434f4c9054c@toms-iphone-4.mail>
16425
+
16426
+ <p>
16427
+ You should be able to click on the link and have the server record the even
16428
+ and forward you to the correct place.
16429
+
16430
+ A link : <a href="http://localhost:5000/mail/t?eid=4f33ad5cba12eb8a08000002&amp;n=1&amp;url=www.google.com">My home</a>
16431
+ </p>
16432
+
16433
+ <br>
16434
+
16435
+ <p>
16436
+ You should be able to show images in the email client and have the server
16437
+ track the open
16438
+ A Bug is in the parenthesis (<img src='http://localhost:5000/mail/b?eid=4f33ad5cba12eb8a08000002' style='display:none' width='1' height='1' border='0' />)
16439
+ </p>
16440
+
16441
+
16442
+
16443
+ ----==_mimepart_4f33ad5caa318_8a0880434f4c90334--
16444
+
16445
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16446
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16447
+  (0.1ms) rollback transaction
16448
+  (0.0ms) begin transaction
16449
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16450
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16451
+  (0.0ms) rollback transaction
16452
+  (0.0ms) begin transaction
16453
+ MONGODB dummy_test['system.namespaces'].find({})
16454
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16455
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16456
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16457
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16458
+ MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f33ad5eba12eb8a08000003'), "to"=>"test@test.com", "from"=>"test@test.com", "reply_to"=>"testGuy", "subject"=>"test subject", "campaign"=>"tests", "stream"=>"a-stream", "component"=>"a-helper_test", "schedule_at"=>2012-02-09 11:26:22 UTC, "email_service_provider"=>"sendgrid", "utm_source"=>"mailspy", "utm_medium"=>"email", "utm_campaign"=>"tests", "utm_term"=>"a-stream", "utm_content"=>"a-helper_test", "updated_at"=>2012-02-09 11:26:22 UTC, "created_at"=>2012-02-09 11:26:22 UTC}])
16459
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad5eba12eb8a08000003')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f33ad5eba12eb8a08000003\"}}"}}})
16460
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16461
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16462
+  (0.1ms) rollback transaction
16463
+  (0.0ms) begin transaction
16464
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16465
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16466
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16467
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16468
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16469
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16470
+  (0.0ms) rollback transaction
16471
+  (0.0ms) begin transaction
16472
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16473
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16474
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16475
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16476
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16477
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16478
+  (0.1ms) rollback transaction
16479
+  (0.0ms) begin transaction
16480
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16481
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16482
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16483
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16484
+ [AWS S3 200 0.090151] get_bucket_versioning(:bucket_name=>"daviacalendar-mailspy")
16485
+
16486
+ [AWS S3 404 0.097776] head_object(:bucket_name=>"daviacalendar-mailspy",:key=>"NO SUCH CAMPAIGN/NO SUCH STREAM/NO SUCH COMPONENT.html.erb") AWS::S3::Errors::NoSuchKey: No Such Key
16487
+
16488
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16489
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16490
+  (0.1ms) rollback transaction
16491
+  (0.0ms) begin transaction
16492
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16493
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16494
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16495
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16496
+ MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f33ad5eba12eb8a08000005'), "to"=>"trcarden@gmail.com", "from"=>"test@test.com", "reply_to"=>"testGuy", "subject"=>"test subject", "campaign"=>"tests", "stream"=>"a-stream", "component"=>"a-helper_test", "schedule_at"=>2012-02-09 11:26:22 UTC, "email_service_provider"=>"sendgrid", "utm_source"=>"mailspy", "utm_medium"=>"email", "utm_campaign"=>"tests", "utm_term"=>"a-stream", "utm_content"=>"a-helper_test", "updated_at"=>2012-02-09 11:26:22 UTC, "created_at"=>2012-02-09 11:26:22 UTC}])
16497
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad5eba12eb8a08000005')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f33ad5eba12eb8a08000005\"}}"}}})
16498
+ MONGODB dummy_test['mail_spy_process_logs'].find({:running=>true}).limit(-1).sort([[:_id, :asc]])
16499
+ MONGODB dummy_test['mail_spy_process_logs'].insert([{"success"=>false, "running"=>true, "_id"=>BSON::ObjectId('4f33ad5eba12eb8a08000006'), "start"=>2012-02-09 11:26:22 UTC, "updated_at"=>2012-02-09 11:26:22 UTC, "created_at"=>2012-02-09 11:26:22 UTC}])
16500
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{:schedule_at=>{"$lte"=>2012-02-09 11:26:22 UTC}, :sent=>false, :failed=>false}, "fields"=>nil}).limit(-1)
16501
+ MONGODB dummy_test['mail_spy_emails'].find({:schedule_at=>{"$lte"=>2012-02-09 11:26:22 UTC}, :sent=>false, :failed=>false}).limit(-1).sort([[:_id, :asc]])
16502
+ MONGODB dummy_test['mail_spy_process_logs'].update({"_id"=>BSON::ObjectId('4f33ad5eba12eb8a08000006')}, {"$set"=>{"end"=>2012-02-09 11:26:22 UTC, "seconds_elapsed"=>0, "running"=>false}})
16503
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16504
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16505
+  (0.1ms) rollback transaction
16506
+  (0.0ms) begin transaction
16507
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16508
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16509
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16510
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16511
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16512
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16513
+  (0.0ms) rollback transaction
16514
+  (0.1ms) begin transaction
16515
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16516
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16517
+ MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f33ad5eba12eb8a08000007'), "to"=>"trcarden@gmail.com", "from"=>"test@test.com", "reply_to"=>"testGuy", "subject"=>"test subject", "campaign"=>"tests", "stream"=>"a-stream", "component"=>"a-helper_test", "schedule_at"=>2012-02-09 11:26:22 UTC, "email_service_provider"=>"sendgrid", "utm_source"=>"mailspy", "utm_medium"=>"email", "utm_campaign"=>"tests", "utm_term"=>"a-stream", "utm_content"=>"a-helper_test", "updated_at"=>2012-02-09 11:26:22 UTC, "created_at"=>2012-02-09 11:26:22 UTC}])
16518
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad5eba12eb8a08000007')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f33ad5eba12eb8a08000007\"}}"}}})
16519
+ MONGODB dummy_test['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
16520
+ Processing by MailSpy::TrackingController#action as HTML
16521
+ Parameters: {"eid"=>"4f33ad5eba12eb8a08000007", "action_type"=>"Conversion", "count"=>"3"}
16522
+ MONGODB dummy_test['mail_spy_emails'].find({:_id=>BSON::ObjectId('4f33ad5eba12eb8a08000007')}).limit(-1).sort([[:_id, :asc]])
16523
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad5eba12eb8a08000007')}, {"$push"=>{"actions"=>{"count"=>3, "_id"=>BSON::ObjectId('4f33ad5eba12eb8a08000008'), "action_type"=>"Conversion", "updated_at"=>2012-02-09 11:26:22 UTC, "created_at"=>2012-02-09 11:26:22 UTC}}})
16524
+ Completed 200 OK in 4ms (ActiveRecord: 0.0ms)
16525
+ MONGODB dummy_test['mail_spy_emails'].find({:_id=>BSON::ObjectId('4f33ad5eba12eb8a08000007')}).limit(-1)
16526
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16527
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16528
+  (0.1ms) rollback transaction
16529
+  (0.0ms) begin transaction
16530
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16531
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16532
+ MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f33ad5eba12eb8a08000009'), "to"=>"trcarden@gmail.com", "from"=>"test@test.com", "reply_to"=>"testGuy", "subject"=>"test subject", "campaign"=>"tests", "stream"=>"a-stream", "component"=>"a-helper_test", "schedule_at"=>2012-02-09 11:26:22 UTC, "email_service_provider"=>"sendgrid", "utm_source"=>"mailspy", "utm_medium"=>"email", "utm_campaign"=>"tests", "utm_term"=>"a-stream", "utm_content"=>"a-helper_test", "updated_at"=>2012-02-09 11:26:22 UTC, "created_at"=>2012-02-09 11:26:22 UTC}])
16533
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad5eba12eb8a08000009')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f33ad5eba12eb8a08000009\"}}"}}})
16534
+ MONGODB dummy_test['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
16535
+ Processing by MailSpy::TrackingController#bug as HTML
16536
+ Parameters: {"eid"=>"4f33ad5eba12eb8a08000009"}
16537
+ MONGODB dummy_test['mail_spy_emails'].find({:_id=>BSON::ObjectId('4f33ad5eba12eb8a08000009')}).limit(-1).sort([[:_id, :asc]])
16538
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad5eba12eb8a08000009')}, {"$push"=>{"actions"=>{"count"=>1, "_id"=>BSON::ObjectId('4f33ad5eba12eb8a0800000a'), "action_type"=>"open", "updated_at"=>2012-02-09 11:26:22 UTC, "created_at"=>2012-02-09 11:26:22 UTC}}})
16539
+ Completed 200 OK in 3ms (ActiveRecord: 0.0ms)
16540
+ MONGODB dummy_test['mail_spy_emails'].find({:_id=>BSON::ObjectId('4f33ad5eba12eb8a08000009')}).limit(-1)
16541
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16542
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16543
+  (0.1ms) rollback transaction
16544
+  (0.0ms) begin transaction
16545
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16546
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16547
+ MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f33ad5eba12eb8a0800000b'), "to"=>"trcarden@gmail.com", "from"=>"test@test.com", "reply_to"=>"testGuy", "subject"=>"test subject", "campaign"=>"tests", "stream"=>"a-stream", "component"=>"a-helper_test", "schedule_at"=>2012-02-09 11:26:22 UTC, "email_service_provider"=>"sendgrid", "utm_source"=>"mailspy", "utm_medium"=>"email", "utm_campaign"=>"tests", "utm_term"=>"a-stream", "utm_content"=>"a-helper_test", "updated_at"=>2012-02-09 11:26:22 UTC, "created_at"=>2012-02-09 11:26:22 UTC}])
16548
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad5eba12eb8a0800000b')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f33ad5eba12eb8a0800000b\"}}"}}})
16549
+ MONGODB dummy_test['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
16550
+ Processing by MailSpy::TrackingController#link as HTML
16551
+ Parameters: {"eid"=>"4f33ad5eba12eb8a0800000b", "url"=>"http://google.com", "n"=>"0"}
16552
+ MONGODB dummy_test['mail_spy_emails'].find({:_id=>BSON::ObjectId('4f33ad5eba12eb8a0800000b')}).limit(-1).sort([[:_id, :asc]])
16553
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad5eba12eb8a0800000b')}, {"$push"=>{"actions"=>{"count"=>1, "_id"=>BSON::ObjectId('4f33ad5eba12eb8a0800000c'), "action_type"=>"click", "details"=>{:url=>"http://google.com", :link_number=>"0"}, "updated_at"=>2012-02-09 11:26:22 UTC, "created_at"=>2012-02-09 11:26:22 UTC}}})
16554
+ Redirected to http://google.com?utm_campaign=tests&utm_content=a-helper_test&utm_medium=email&utm_source=mailspy&utm_term=a-stream
16555
+ Completed 302 Found in 3ms (ActiveRecord: 0.0ms)
16556
+ MONGODB dummy_test['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
16557
+ MONGODB dummy_test['mail_spy_emails'].find({:_id=>BSON::ObjectId('4f33ad5eba12eb8a0800000b')}).limit(-1)
16558
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16559
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16560
+  (0.1ms) rollback transaction
16561
+  (0.0ms) begin transaction
16562
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16563
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16564
+ MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f33ad5eba12eb8a0800000d'), "to"=>"trcarden@gmail.com", "from"=>"test@test.com", "reply_to"=>"testGuy", "subject"=>"test subject", "campaign"=>"tests", "stream"=>"a-stream", "component"=>"a-helper_test", "schedule_at"=>2012-02-09 11:26:22 UTC, "email_service_provider"=>"sendgrid", "utm_source"=>"mailspy", "utm_medium"=>"email", "utm_campaign"=>"tests", "utm_term"=>"a-stream", "utm_content"=>"a-helper_test", "updated_at"=>2012-02-09 11:26:22 UTC, "created_at"=>2012-02-09 11:26:22 UTC}])
16565
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad5eba12eb8a0800000d')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f33ad5eba12eb8a0800000d\"}}"}}})
16566
+ MONGODB dummy_test['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
16567
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16568
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16569
+  (0.0ms) rollback transaction
16570
+  (0.1ms) begin transaction
16571
+  (0.1ms) rollback transaction
16572
+ MONGODB [WARNING] Please note that logging negatively impacts client-side performance. You should set your logging level no lower than :info in production.
16573
+ MONGODB admin['$cmd'].find({:ismaster=>1}).limit(-1)
16574
+  (0.3ms) begin transaction
16575
+ [AWS S3 200 0.758318] get_bucket_versioning(:bucket_name=>"daviacalendar-mailspy")
16576
+
16577
+ [AWS S3 200 0.091158] head_object(:bucket_name=>"daviacalendar-mailspy",:key=>"tests/a-stream/a-helper_test.html.erb")
16578
+
16579
+ [AWS S3 200 0.098760] get_object(:bucket_name=>"daviacalendar-mailspy",:key=>"tests/a-stream/a-helper_test.html.erb")
16580
+
16581
+ [AWS S3 200 0.084134] get_bucket_versioning(:bucket_name=>"daviacalendar-mailspy")
16582
+
16583
+ [AWS S3 200 0.093085] head_object(:bucket_name=>"daviacalendar-mailspy",:key=>"tests/a-stream/a-helper_test.text.erb")
16584
+
16585
+ [AWS S3 200 0.135305] get_object(:bucket_name=>"daviacalendar-mailspy",:key=>"tests/a-stream/a-helper_test.text.erb")
16586
+
16587
+ MONGODB dummy_test['system.namespaces'].find({})
16588
+ MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f33ad91ba12eb8a17000001'), "to"=>"trcarden@gmail.com", "from"=>"test@test.com", "reply_to"=>"testGuy", "subject"=>"test subject", "campaign"=>"tests", "stream"=>"a-stream", "component"=>"a-helper_test", "schedule_at"=>2012-02-09 11:27:13 UTC, "email_service_provider"=>"sendgrid", "utm_source"=>"mailspy", "utm_medium"=>"email", "utm_campaign"=>"tests", "utm_term"=>"a-stream", "utm_content"=>"a-helper_test", "updated_at"=>2012-02-09 11:27:15 UTC, "created_at"=>2012-02-09 11:27:15 UTC}])
16589
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad91ba12eb8a17000001')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f33ad91ba12eb8a17000001\"}}"}}})
16590
+ Rendered inline template (22.3ms)
16591
+ Rendered inline template (1.3ms)
16592
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16593
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16594
+  (0.1ms) rollback transaction
16595
+  (0.0ms) begin transaction
16596
+ MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f33ad95ba12eb8a17000002'), "to"=>"trcarden@gmail.com", "from"=>"test@test.com", "reply_to"=>"testGuy", "subject"=>"test subject", "campaign"=>"tests", "stream"=>"a-stream", "component"=>"a-helper_test", "schedule_at"=>2012-02-09 11:27:17 UTC, "email_service_provider"=>"sendgrid", "utm_source"=>"mailspy", "utm_medium"=>"email", "utm_campaign"=>"tests", "utm_term"=>"a-stream", "utm_content"=>"a-helper_test", "updated_at"=>2012-02-09 11:27:17 UTC, "created_at"=>2012-02-09 11:27:17 UTC}])
16597
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad95ba12eb8a17000002')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f33ad95ba12eb8a17000002\"}}"}}})
16598
+ MONGODB dummy_test['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
16599
+ Rendered inline template (1.5ms)
16600
+ Rendered inline template (1.3ms)
16601
+
16602
+ Sent mail to trcarden@gmail.com (1358ms)
16603
+ Date: Thu, 09 Feb 2012 03:27:17 -0800
16604
+ From: test@test.com
16605
+ Reply-To: testGuy
16606
+ To: trcarden@gmail.com
16607
+ Message-ID: <4f33ad95459a5_8a1780434f4c67347@toms-iphone-4.mail>
16608
+ Subject: test subject
16609
+ Mime-Version: 1.0
16610
+ Content-Type: multipart/alternative;
16611
+ boundary="--==_mimepart_4f33ad95291fa_8a1780434f4c670db";
16612
+ charset=UTF-8
16613
+ Content-Transfer-Encoding: 7bit
16614
+ X-SMTPAPI: {"unique_args": {"eid": "4f33ad95ba12eb8a17000002"}}
16615
+
16616
+
16617
+
16618
+ ----==_mimepart_4f33ad95291fa_8a1780434f4c670db
16619
+ Date: Thu, 09 Feb 2012 03:27:17 -0800
16620
+ Mime-Version: 1.0
16621
+ Content-Type: text/plain;
16622
+ charset=UTF-8
16623
+ Content-Transfer-Encoding: 7bit
16624
+ Content-ID: <4f33ad9538628_8a1780434f4c671ce@toms-iphone-4.mail>
16625
+
16626
+ You should be able to click on the link and have the server record the even
16627
+ and forward you to the correct place.
16628
+
16629
+ A link : <a href="http://localhost:5000/mail/t?eid=4f33ad95ba12eb8a17000002&amp;n=1&amp;url=www.google.com">My home</a>
16630
+ ---------------------------
16631
+
16632
+ You should be able to show images in the email client and have the server
16633
+ track the open
16634
+ A Bug is in the parenthesis (<img src='http://localhost:5000/mail/b?eid=4f33ad95ba12eb8a17000002' style='display:none' width='1' height='1' border='0' />)
16635
+
16636
+
16637
+
16638
+
16639
+ ----==_mimepart_4f33ad95291fa_8a1780434f4c670db
16640
+ Date: Thu, 09 Feb 2012 03:27:17 -0800
16641
+ Mime-Version: 1.0
16642
+ Content-Type: text/html;
16643
+ charset=UTF-8
16644
+ Content-Transfer-Encoding: 7bit
16645
+ Content-ID: <4f33ad9540be6_8a1780434f4c6722d@toms-iphone-4.mail>
16646
+
16647
+ <p>
16648
+ You should be able to click on the link and have the server record the even
16649
+ and forward you to the correct place.
16650
+
16651
+ A link : <a href="http://localhost:5000/mail/t?eid=4f33ad95ba12eb8a17000002&amp;n=1&amp;url=www.google.com">My home</a>
16652
+ </p>
16653
+
16654
+ <br>
16655
+
16656
+ <p>
16657
+ You should be able to show images in the email client and have the server
16658
+ track the open
16659
+ A Bug is in the parenthesis (<img src='http://localhost:5000/mail/b?eid=4f33ad95ba12eb8a17000002' style='display:none' width='1' height='1' border='0' />)
16660
+ </p>
16661
+
16662
+
16663
+
16664
+ ----==_mimepart_4f33ad95291fa_8a1780434f4c670db--
16665
+
16666
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16667
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16668
+  (0.1ms) rollback transaction
16669
+  (0.0ms) begin transaction
16670
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16671
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16672
+  (0.0ms) rollback transaction
16673
+  (0.0ms) begin transaction
16674
+ MONGODB dummy_test['system.namespaces'].find({})
16675
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16676
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16677
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16678
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16679
+ MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f33ad96ba12eb8a17000003'), "to"=>"test@test.com", "from"=>"test@test.com", "reply_to"=>"testGuy", "subject"=>"test subject", "campaign"=>"tests", "stream"=>"a-stream", "component"=>"a-helper_test", "schedule_at"=>2012-02-09 11:27:18 UTC, "email_service_provider"=>"sendgrid", "utm_source"=>"mailspy", "utm_medium"=>"email", "utm_campaign"=>"tests", "utm_term"=>"a-stream", "utm_content"=>"a-helper_test", "updated_at"=>2012-02-09 11:27:18 UTC, "created_at"=>2012-02-09 11:27:18 UTC}])
16680
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad96ba12eb8a17000003')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f33ad96ba12eb8a17000003\"}}"}}})
16681
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16682
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16683
+  (0.1ms) rollback transaction
16684
+  (0.0ms) begin transaction
16685
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16686
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16687
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16688
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16689
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16690
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16691
+  (0.0ms) rollback transaction
16692
+  (0.0ms) begin transaction
16693
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16694
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16695
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16696
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16697
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16698
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16699
+  (0.1ms) rollback transaction
16700
+  (0.0ms) begin transaction
16701
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16702
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16703
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16704
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16705
+ [AWS S3 200 0.091778] get_bucket_versioning(:bucket_name=>"daviacalendar-mailspy")
16706
+
16707
+ [AWS S3 404 0.092340] head_object(:bucket_name=>"daviacalendar-mailspy",:key=>"NO SUCH CAMPAIGN/NO SUCH STREAM/NO SUCH COMPONENT.html.erb") AWS::S3::Errors::NoSuchKey: No Such Key
16708
+
16709
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16710
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16711
+  (0.1ms) rollback transaction
16712
+  (0.0ms) begin transaction
16713
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16714
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16715
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16716
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16717
+ MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f33ad96ba12eb8a17000005'), "to"=>"trcarden@gmail.com", "from"=>"test@test.com", "reply_to"=>"testGuy", "subject"=>"test subject", "campaign"=>"tests", "stream"=>"a-stream", "component"=>"a-helper_test", "schedule_at"=>2012-02-09 11:27:18 UTC, "email_service_provider"=>"sendgrid", "utm_source"=>"mailspy", "utm_medium"=>"email", "utm_campaign"=>"tests", "utm_term"=>"a-stream", "utm_content"=>"a-helper_test", "updated_at"=>2012-02-09 11:27:18 UTC, "created_at"=>2012-02-09 11:27:18 UTC}])
16718
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad96ba12eb8a17000005')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f33ad96ba12eb8a17000005\"}}"}}})
16719
+ MONGODB dummy_test['mail_spy_process_logs'].find({:running=>true}).limit(-1).sort([[:_id, :asc]])
16720
+ MONGODB dummy_test['mail_spy_process_logs'].insert([{"success"=>false, "running"=>true, "_id"=>BSON::ObjectId('4f33ad96ba12eb8a17000006'), "start"=>2012-02-09 11:27:18 UTC, "updated_at"=>2012-02-09 11:27:18 UTC, "created_at"=>2012-02-09 11:27:18 UTC}])
16721
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{:schedule_at=>{"$lte"=>2012-02-09 11:27:18 UTC}, :sent=>false, :failed=>false}, "fields"=>nil}).limit(-1)
16722
+ MONGODB dummy_test['mail_spy_emails'].find({:schedule_at=>{"$lte"=>2012-02-09 11:27:18 UTC}, :sent=>false, :failed=>false}).limit(-1).sort([[:_id, :asc]])
16723
+ MONGODB dummy_test['mail_spy_process_logs'].update({"_id"=>BSON::ObjectId('4f33ad96ba12eb8a17000006')}, {"$set"=>{"end"=>2012-02-09 11:27:18 UTC, "seconds_elapsed"=>0, "running"=>false, "success"=>true}})
16724
+ MONGODB dummy_test['mail_spy_process_logs'].find({}).limit(-1).sort([[:_id, :asc]])
16725
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16726
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16727
+  (0.1ms) rollback transaction
16728
+  (0.0ms) begin transaction
16729
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16730
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16731
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16732
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16733
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_process_logs", "query"=>{}, "fields"=>nil}).limit(-1)
16734
+ MONGODB dummy_test['mail_spy_process_logs'].remove({})
16735
+  (0.0ms) rollback transaction
16736
+  (0.1ms) begin transaction
16737
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16738
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16739
+ MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f33ad96ba12eb8a17000007'), "to"=>"trcarden@gmail.com", "from"=>"test@test.com", "reply_to"=>"testGuy", "subject"=>"test subject", "campaign"=>"tests", "stream"=>"a-stream", "component"=>"a-helper_test", "schedule_at"=>2012-02-09 11:27:18 UTC, "email_service_provider"=>"sendgrid", "utm_source"=>"mailspy", "utm_medium"=>"email", "utm_campaign"=>"tests", "utm_term"=>"a-stream", "utm_content"=>"a-helper_test", "updated_at"=>2012-02-09 11:27:18 UTC, "created_at"=>2012-02-09 11:27:18 UTC}])
16740
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad96ba12eb8a17000007')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f33ad96ba12eb8a17000007\"}}"}}})
16741
+ MONGODB dummy_test['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
16742
+ Processing by MailSpy::TrackingController#action as HTML
16743
+ Parameters: {"eid"=>"4f33ad96ba12eb8a17000007", "action_type"=>"Conversion", "count"=>"3"}
16744
+ MONGODB dummy_test['mail_spy_emails'].find({:_id=>BSON::ObjectId('4f33ad96ba12eb8a17000007')}).limit(-1).sort([[:_id, :asc]])
16745
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad96ba12eb8a17000007')}, {"$push"=>{"actions"=>{"count"=>3, "_id"=>BSON::ObjectId('4f33ad96ba12eb8a17000008'), "action_type"=>"Conversion", "updated_at"=>2012-02-09 11:27:18 UTC, "created_at"=>2012-02-09 11:27:18 UTC}}})
16746
+ Completed 200 OK in 5ms (ActiveRecord: 0.0ms)
16747
+ MONGODB dummy_test['mail_spy_emails'].find({:_id=>BSON::ObjectId('4f33ad96ba12eb8a17000007')}).limit(-1)
16748
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16749
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16750
+  (0.1ms) rollback transaction
16751
+  (0.0ms) begin transaction
16752
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16753
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16754
+ MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f33ad96ba12eb8a17000009'), "to"=>"trcarden@gmail.com", "from"=>"test@test.com", "reply_to"=>"testGuy", "subject"=>"test subject", "campaign"=>"tests", "stream"=>"a-stream", "component"=>"a-helper_test", "schedule_at"=>2012-02-09 11:27:18 UTC, "email_service_provider"=>"sendgrid", "utm_source"=>"mailspy", "utm_medium"=>"email", "utm_campaign"=>"tests", "utm_term"=>"a-stream", "utm_content"=>"a-helper_test", "updated_at"=>2012-02-09 11:27:18 UTC, "created_at"=>2012-02-09 11:27:18 UTC}])
16755
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad96ba12eb8a17000009')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f33ad96ba12eb8a17000009\"}}"}}})
16756
+ MONGODB dummy_test['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
16757
+ Processing by MailSpy::TrackingController#bug as HTML
16758
+ Parameters: {"eid"=>"4f33ad96ba12eb8a17000009"}
16759
+ MONGODB dummy_test['mail_spy_emails'].find({:_id=>BSON::ObjectId('4f33ad96ba12eb8a17000009')}).limit(-1).sort([[:_id, :asc]])
16760
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad96ba12eb8a17000009')}, {"$push"=>{"actions"=>{"count"=>1, "_id"=>BSON::ObjectId('4f33ad96ba12eb8a1700000a'), "action_type"=>"open", "updated_at"=>2012-02-09 11:27:18 UTC, "created_at"=>2012-02-09 11:27:18 UTC}}})
16761
+ Completed 200 OK in 3ms (ActiveRecord: 0.0ms)
16762
+ MONGODB dummy_test['mail_spy_emails'].find({:_id=>BSON::ObjectId('4f33ad96ba12eb8a17000009')}).limit(-1)
16763
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16764
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16765
+  (0.1ms) rollback transaction
16766
+  (0.0ms) begin transaction
16767
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16768
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16769
+ MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f33ad96ba12eb8a1700000b'), "to"=>"trcarden@gmail.com", "from"=>"test@test.com", "reply_to"=>"testGuy", "subject"=>"test subject", "campaign"=>"tests", "stream"=>"a-stream", "component"=>"a-helper_test", "schedule_at"=>2012-02-09 11:27:18 UTC, "email_service_provider"=>"sendgrid", "utm_source"=>"mailspy", "utm_medium"=>"email", "utm_campaign"=>"tests", "utm_term"=>"a-stream", "utm_content"=>"a-helper_test", "updated_at"=>2012-02-09 11:27:18 UTC, "created_at"=>2012-02-09 11:27:18 UTC}])
16770
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad96ba12eb8a1700000b')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f33ad96ba12eb8a1700000b\"}}"}}})
16771
+ MONGODB dummy_test['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
16772
+ Processing by MailSpy::TrackingController#link as HTML
16773
+ Parameters: {"eid"=>"4f33ad96ba12eb8a1700000b", "url"=>"http://google.com", "n"=>"0"}
16774
+ MONGODB dummy_test['mail_spy_emails'].find({:_id=>BSON::ObjectId('4f33ad96ba12eb8a1700000b')}).limit(-1).sort([[:_id, :asc]])
16775
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad96ba12eb8a1700000b')}, {"$push"=>{"actions"=>{"count"=>1, "_id"=>BSON::ObjectId('4f33ad96ba12eb8a1700000c'), "action_type"=>"click", "details"=>{:url=>"http://google.com", :link_number=>"0"}, "updated_at"=>2012-02-09 11:27:18 UTC, "created_at"=>2012-02-09 11:27:18 UTC}}})
16776
+ Redirected to http://google.com?utm_campaign=tests&utm_content=a-helper_test&utm_medium=email&utm_source=mailspy&utm_term=a-stream
16777
+ Completed 302 Found in 3ms (ActiveRecord: 0.0ms)
16778
+ MONGODB dummy_test['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
16779
+ MONGODB dummy_test['mail_spy_emails'].find({:_id=>BSON::ObjectId('4f33ad96ba12eb8a1700000b')}).limit(-1)
16780
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16781
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16782
+  (0.1ms) rollback transaction
16783
+  (0.0ms) begin transaction
16784
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16785
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16786
+ MONGODB dummy_test['mail_spy_emails'].insert([{"headers"=>{}, "template_values"=>{}, "sent"=>false, "failed"=>false, "_id"=>BSON::ObjectId('4f33ad96ba12eb8a1700000d'), "to"=>"trcarden@gmail.com", "from"=>"test@test.com", "reply_to"=>"testGuy", "subject"=>"test subject", "campaign"=>"tests", "stream"=>"a-stream", "component"=>"a-helper_test", "schedule_at"=>2012-02-09 11:27:18 UTC, "email_service_provider"=>"sendgrid", "utm_source"=>"mailspy", "utm_medium"=>"email", "utm_campaign"=>"tests", "utm_term"=>"a-stream", "utm_content"=>"a-helper_test", "updated_at"=>2012-02-09 11:27:18 UTC, "created_at"=>2012-02-09 11:27:18 UTC}])
16787
+ MONGODB dummy_test['mail_spy_emails'].update({"_id"=>BSON::ObjectId('4f33ad96ba12eb8a1700000d')}, {"$set"=>{"headers"=>{"X-SMTPAPI"=>"{\"unique_args\": {\"eid\": \"4f33ad96ba12eb8a1700000d\"}}"}}})
16788
+ MONGODB dummy_test['mail_spy_emails'].find({}).limit(-1).sort([[:_id, :asc]])
16789
+ MONGODB dummy_test['$cmd'].find({"count"=>"mail_spy_emails", "query"=>{}, "fields"=>nil}).limit(-1)
16790
+ MONGODB dummy_test['mail_spy_emails'].remove({})
16791
+  (0.0ms) rollback transaction
16792
+  (0.0ms) begin transaction
16793
+  (0.0ms) rollback transaction