diff --git a/lib/nickserver/hkp/key_info.rb b/lib/nickserver/hkp/key_info.rb
index e1a9500b87104094c248373c788d56c334ca5389..c1b1ad32b30a394b26e5bb7a1a1d28e6c8303fcc 100644
--- a/lib/nickserver/hkp/key_info.rb
+++ b/lib/nickserver/hkp/key_info.rb
@@ -49,7 +49,7 @@ module Nickserver::Hkp
 
     def expirationdate
       expires = properties[4]
-      Time.at(expires.to_i)
+      expires && Time.at(expires.to_i)
     end
 
     def flags
diff --git a/test/integration/hkp_test.rb b/test/integration/hkp_test.rb
index c12588cb2df9246de0607487d9bf855a3718afbb..f6675e990cda1a64c339ad2ba92b9a50021b542f 100644
--- a/test/integration/hkp_test.rb
+++ b/test/integration/hkp_test.rb
@@ -33,7 +33,7 @@ class HkpTest < Minitest::Test
     stubbing_http do
       uid = 'leaping_lemur@leap.se'
       stub_sks_vindex_reponse(uid, status: 404)
-      assert_response_status_for_uid uid, 404
+      assert_nil response_for_uid(uid)
     end
   end
 
@@ -41,7 +41,7 @@ class HkpTest < Minitest::Test
     stubbing_http do
       uid = 'leaping_lemur@leap.se'
       stub_sks_vindex_reponse(uid, status: 200)
-      assert_response_status_for_uid uid, 404
+      assert_nil response_for_uid(uid)
     end
   end
 
@@ -51,10 +51,9 @@ class HkpTest < Minitest::Test
     stubbing_http do
       stub_sks_vindex_reponse(uid, body: file_content(:leap_vindex_result))
       stub_sks_get_reponse(key_id, body: file_content(:leap_public_key))
-      assert_response_for_uid(uid) do |response|
-        content = JSON.parse response.content
-        assert_equal file_content(:leap_public_key), content['openpgp']
-      end
+      response = response_for_uid(uid)
+      content = JSON.parse response.content
+      assert_equal file_content(:leap_public_key), content['openpgp']
     end
   end
 
@@ -65,7 +64,7 @@ class HkpTest < Minitest::Test
     stubbing_http do
       stub_sks_vindex_reponse(uid, body: file_content(:leap_vindex_result))
       stub_sks_get_reponse(key_id, status: 404)
-      assert_response_status_for_uid uid, 404
+      assert_equal 404, response_for_uid(uid).status
     end
   end
 
@@ -74,29 +73,20 @@ class HkpTest < Minitest::Test
 
     stubbing_http do
       stub_sks_vindex_reponse(uid, body: file_content(:short_key_vindex_result))
-      assert_response_status_for_uid uid, 500
+      assert_equal 500, response_for_uid(uid).status
     end
   end
 
   protected
 
-  def assert_response_status_for_uid(uid, status)
-    assert_response_for_uid(uid) do |response|
-      assert_equal status, response.status
-    end
-  end
-
-  def assert_response_for_uid(uid)
-    Nickserver::Hkp::Source.new(adapter).query uid do |response|
-      yield response
-    end
+  def response_for_uid(uid)
+    Nickserver::Hkp::Source.new(adapter).query uid
   end
 
   def assert_key_info_for_uid(uid)
-    Nickserver::Hkp::Source.new(adapter).search uid do |status, keys|
-      assert_equal 200, status
-      yield keys
-    end
+    status, keys = Nickserver::Hkp::Source.new(adapter).search uid
+    assert_equal 200, status
+    yield keys
   end
 
   def fetch_key_info(body_source, uid, &block)