From 4f32e7b52e7819d677c0870b5239dae433934db0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Carlos=20Nieto?= <jose.carlos@menteslibres.net>
Date: Thu, 8 Oct 2015 10:30:01 -0500
Subject: [PATCH] Fixing tests.

---
 internal/sqladapter/database.go   | 4 ++++
 internal/sqlutil/result/result.go | 5 ++++-
 sqlite/database.go                | 2 +-
 3 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/internal/sqladapter/database.go b/internal/sqladapter/database.go
index e04b5850..ae3c1b3e 100644
--- a/internal/sqladapter/database.go
+++ b/internal/sqladapter/database.go
@@ -125,6 +125,10 @@ func (d *BaseDatabase) Ping() error {
 
 // Close terminates the current database session.
 func (d *BaseDatabase) Close() error {
+	defer func() {
+		d.sess = nil
+		d.tx = nil
+	}()
 	if d.sess != nil {
 		if d.tx != nil && !d.tx.Done() {
 			d.tx.Rollback()
diff --git a/internal/sqlutil/result/result.go b/internal/sqlutil/result/result.go
index a508ac5b..61df81fa 100644
--- a/internal/sqlutil/result/result.go
+++ b/internal/sqlutil/result/result.go
@@ -147,9 +147,12 @@ func (r *Result) Count() (uint64, error) {
 	}{}
 
 	q := r.buildSelect()
-	q.Columns(db.Raw{"count(1) AS _t"}).Limit(1)
+	q.Columns(db.Raw{"count(1) AS _t"}).Limit(1).OrderBy(nil)
 
 	if err := q.Iterator().One(&counter); err != nil {
+		if err == db.ErrNoMoreRows {
+			return 0, nil
+		}
 		return 0, err
 	}
 
diff --git a/sqlite/database.go b/sqlite/database.go
index 345d3e5b..c2de9e58 100644
--- a/sqlite/database.go
+++ b/sqlite/database.go
@@ -123,7 +123,7 @@ func (d *database) Use(name string) (err error) {
 }
 
 func (d *database) Close() error {
-	if d.BaseDatabase != nil {
+	if d.Session() != nil {
 		if atomic.AddInt32(&fileOpenCount, -1) < 0 {
 			return errors.New(`Close() without Open()?`)
 		}
-- 
GitLab