diff --git a/setup.cfg b/setup.cfg
index 9bcb0a781e496ebf0f202d20fb4d610dad36a7dc..21addee8c39482c485fe43da878aded1e1a570a7 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -23,4 +23,5 @@ addopts = --cov mwclient test
 [flake8]
 max-line-length = 90
 ignore = 
-	W503  # Line break before binary operator
+    # Line break before binary operator
+    W503
diff --git a/test/__init__.py b/test/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..88c29b02d384479bb666e56a2fdfa20c72558227
--- /dev/null
+++ b/test/__init__.py
@@ -0,0 +1 @@
+# This file exists only because pytest-cov generates no coverage information without it.
diff --git a/test/test_client.py b/test/test_client.py
index 67f1c90d8feb3b5c7ec61b7c5ced99af1438a819..c89c3c9bb6150f7a30c774509a23c962042fad88 100644
--- a/test/test_client.py
+++ b/test/test_client.py
@@ -470,7 +470,7 @@ class TestLogin(TestCase):
     def test_clientlogin_success(self, raw_api, site_init):
         login_token = 'abc+\\'
 
-        def side_effect(*args, **kwargs):
+        def api_side_effect(*args, **kwargs):
             if kwargs.get('meta') == 'tokens':
                 return {
                     'query': {'tokens': {'logintoken': login_token}}
@@ -482,9 +482,11 @@ class TestLogin(TestCase):
                     'clientlogin': {'status': 'PASS'}
                 }
 
-        raw_api.side_effect = side_effect
+        raw_api.side_effect = api_side_effect
 
         site = mwclient.Site('test.wikipedia.org')
+        # this would be done by site_init usually, but we're mocking it
+        site.version = (1, 28, 0)
         success = site.clientlogin(username='myusername', password='mypassword')
         url = '%s://%s' % (site.scheme, site.host)
 
@@ -521,6 +523,8 @@ class TestLogin(TestCase):
         raw_api.side_effect = side_effect
 
         site = mwclient.Site('test.wikipedia.org')
+        # this would be done by site_init usually, but we're mocking it
+        site.version = (1, 28, 0)
 
         with pytest.raises(mwclient.errors.LoginError):
             success = site.clientlogin(username='myusername', password='mypassword')
@@ -557,6 +561,8 @@ class TestLogin(TestCase):
         raw_api.side_effect = side_effect
 
         site = mwclient.Site('test.wikipedia.org')
+        # this would be done by site_init usually, but we're mocking it
+        site.version = (1, 28, 0)
         success = site.clientlogin(username='myusername', password='mypassword')
         url = '%s://%s' % (site.scheme, site.host)