]> gitweb.michael.orlitzky.com - mailshears.git/blobdiff - test/mailshears_test.rb
Make pruning use the correct config and clean up *before* running tests, too.
[mailshears.git] / test / mailshears_test.rb
index b4ba814f014e2dd83919f07200ac04dc1804fd18..8e80c063f0a3a07092996d2eab49f82d50db5d8d 100644 (file)
@@ -32,13 +32,8 @@ class MailshearsTest < MiniTest::Unit::TestCase
     db_user = 'postgres'
     db_pass = nil
 
     db_user = 'postgres'
     db_pass = nil
 
-    connection = PGconn.connect(db_host,
-                                db_port,
-                                db_opts,
-                                db_tty,
-                                db_name,
-                                db_user,
-                                db_pass)
+    connection = PGconn.connect(db_host, db_port, db_opts, db_tty,
+                                db_name, db_user, db_pass)
 
     return connection
   end
 
     return connection
   end
@@ -183,6 +178,10 @@ class MailshearsTest < MiniTest::Unit::TestCase
     #   |       3 | adam@example.net   |
     #   +---------+--------------------+
 
     #   |       3 | adam@example.net   |
     #   +---------+--------------------+
 
+    # First make sure we get rid of everything so we don't get random
+    # failures from databases and directories that already exist.
+    teardown()
+
     cfg = configuration()
 
     # First create the "mail directories".
     cfg = configuration()
 
     # First create the "mail directories".
@@ -207,12 +206,8 @@ class MailshearsTest < MiniTest::Unit::TestCase
       plugin_dbuser = cfg.send("#{plugin}_dbuser")
       plugin_dbpass = cfg.send("#{plugin}_dbpass")
 
       plugin_dbuser = cfg.send("#{plugin}_dbuser")
       plugin_dbpass = cfg.send("#{plugin}_dbpass")
 
-      plugin_conn = PGconn.connect(plugin_dbhost,
-                                   plugin_dbport,
-                                   plugin_dbopts,
-                                   plugin_dbtty,
-                                   plugin_dbname,
-                                   plugin_dbuser,
+      plugin_conn = PGconn.connect(plugin_dbhost, plugin_dbport, plugin_dbopts,
+                                   plugin_dbtty, plugin_dbname, plugin_dbuser,
                                    plugin_dbpass)
 
       sql = File.open("test/sql/#{plugin}.sql").read()
                                    plugin_dbpass)
 
       sql = File.open("test/sql/#{plugin}.sql").read()
@@ -231,17 +226,21 @@ class MailshearsTest < MiniTest::Unit::TestCase
     cfg = configuration()
     connection = connect_superuser()
 
     cfg = configuration()
     connection = connect_superuser()
 
+    # Don't emit notices about missing tables. Why this happens when I
+    # explicitly say IF EXISTS is beyond me.
+    connection.set_notice_processor{}
+
     cfg.plugins.each do |plugin|
       plugin_dbname = cfg.send("#{plugin}_dbname")
       next if plugin_dbname.nil? # Skip the dovecot plugin
     cfg.plugins.each do |plugin|
       plugin_dbname = cfg.send("#{plugin}_dbname")
       next if plugin_dbname.nil? # Skip the dovecot plugin
-      query = "DROP DATABASE #{plugin_dbname};"
+      query = "DROP DATABASE IF EXISTS #{plugin_dbname};"
       connection.query(query)
     end
 
     connection.close()
 
     # Get rid of the maildirs.
       connection.query(query)
     end
 
     connection.close()
 
     # Get rid of the maildirs.
-    FileUtils.rm_r(cfg.dovecot_mail_root())
+    FileUtils.rm_rf(cfg.dovecot_mail_root())
   end
 
 end
   end
 
 end