unify app engine testbed setup/teardown into testutil.TestCase

mastodon
Ryan Barrett 2017-08-23 23:24:47 -07:00
rodzic 394c666f46
commit 779b62c837
5 zmienionych plików z 36 dodań i 67 usunięć

Wyświetl plik

@ -1,25 +1,12 @@
# coding=utf-8 # coding=utf-8
"""Unit tests for models.py.""" """Unit tests for models.py."""
from __future__ import unicode_literals from __future__ import unicode_literals
import unittest
from google.appengine.datastore import datastore_stub_util
from google.appengine.ext import testbed
import models import models
import testutil
class ModelsTest(unittest.TestCase): class ModelsTest(testutil.TestCase):
def setUp(self):
self.testbed = testbed.Testbed()
self.testbed.activate()
hrd_policy = datastore_stub_util.PseudoRandomHRConsistencyPolicy(probability=.5)
self.testbed.init_datastore_v3_stub(consistency_policy=hrd_policy)
self.testbed.init_memcache_stub()
def tearDown(self):
self.testbed.deactivate()
def test_magic_key_get_or_create(self): def test_magic_key_get_or_create(self):
key = models.MagicKey.get_or_create('x@y.z') key = models.MagicKey.get_or_create('x@y.z')

Wyświetl plik

@ -5,47 +5,34 @@ TODO: test error handling
""" """
from __future__ import unicode_literals from __future__ import unicode_literals
import copy import copy
import unittest
import urllib import urllib
from google.appengine.datastore import datastore_stub_util
from google.appengine.ext import testbed
from django_salmon import magicsigs from django_salmon import magicsigs
import mock import mock
from oauth_dropins.webutil import testutil from oauth_dropins.webutil.testutil import UrlopenResult
import requests import requests
import common import common
import models import models
from salmon import app from salmon import app
import testutil
@mock.patch('requests.post') @mock.patch('requests.post')
@mock.patch('requests.get') @mock.patch('requests.get')
@mock.patch('urllib2.urlopen') @mock.patch('urllib2.urlopen')
class SalmonTest(unittest.TestCase): class SalmonTest(testutil.TestCase):
def setUp(self):
self.testbed = testbed.Testbed()
self.testbed.activate()
hrd_policy = datastore_stub_util.PseudoRandomHRConsistencyPolicy(probability=.5)
self.testbed.init_datastore_v3_stub(consistency_policy=hrd_policy)
self.testbed.init_memcache_stub()
def tearDown(self):
self.testbed.deactivate()
def test_slap(self, mock_urlopen, mock_get, mock_post): def test_slap(self, mock_urlopen, mock_get, mock_post):
# salmon magic key discovery. first host-meta, then webfinger # salmon magic key discovery. first host-meta, then webfinger
key = models.MagicKey.get_or_create('alice') key = models.MagicKey.get_or_create('alice')
mock_urlopen.side_effect = [ mock_urlopen.side_effect = [
testutil.UrlopenResult(200, """\ UrlopenResult(200, """\
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<XRD xmlns='http://docs.oasis-open.org/ns/xri/xrd-1.0'> <XRD xmlns='http://docs.oasis-open.org/ns/xri/xrd-1.0'>
<Link rel='lrdd' type='application/xrd+xml' template='http://webfinger/{uri}' /> <Link rel='lrdd' type='application/xrd+xml' template='http://webfinger/{uri}' />
</XRD>"""), </XRD>"""),
testutil.UrlopenResult(200, """\ UrlopenResult(200, """\
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<XRD xmlns='http://docs.oasis-open.org/ns/xri/xrd-1.0'> <XRD xmlns='http://docs.oasis-open.org/ns/xri/xrd-1.0'>
<Subject>alice@fedsoc.net</Subject> <Subject>alice@fedsoc.net</Subject>

Wyświetl plik

@ -5,10 +5,6 @@ TODO: test error handling
""" """
from __future__ import unicode_literals from __future__ import unicode_literals
import json import json
import unittest
from google.appengine.datastore import datastore_stub_util
from google.appengine.ext import testbed
import mock import mock
from oauth_dropins.webutil import util from oauth_dropins.webutil import util
@ -16,23 +12,11 @@ import requests
import common import common
import models import models
import testutil
from webfinger import app from webfinger import app
class WebFingerTest(unittest.TestCase): class WebFingerTest(testutil.TestCase):
maxDiff = None
# TODO: unify with test_models, test_salmon
def setUp(self):
self.testbed = testbed.Testbed()
self.testbed.activate()
hrd_policy = datastore_stub_util.PseudoRandomHRConsistencyPolicy(probability=.5)
self.testbed.init_datastore_v3_stub(consistency_policy=hrd_policy)
self.testbed.init_memcache_stub()
def tearDown(self):
self.testbed.deactivate()
def test_host_meta_handler_xrd(self): def test_host_meta_handler_xrd(self):
got = app.get_response('/.well-known/host-meta') got = app.get_response('/.well-known/host-meta')

Wyświetl plik

@ -6,13 +6,11 @@ TODO: test error handling
from __future__ import unicode_literals from __future__ import unicode_literals
import copy import copy
import json import json
import unittest
import urllib import urllib
import urllib2 import urllib2
from django_salmon import magicsigs, utils
import feedparser import feedparser
from google.appengine.datastore import datastore_stub_util
from google.appengine.ext import testbed
import mock import mock
from mock import call from mock import call
from oauth_dropins.webutil import util from oauth_dropins.webutil import util
@ -20,25 +18,18 @@ import requests
import activitypub import activitypub
import common import common
from django_salmon import magicsigs, utils
import models import models
import testutil
import webmention import webmention
from webmention import app from webmention import app
@mock.patch('requests.post') @mock.patch('requests.post')
@mock.patch('requests.get') @mock.patch('requests.get')
class WebmentionTest(unittest.TestCase): class WebmentionTest(testutil.TestCase):
maxDiff = None
def setUp(self): def setUp(self):
self.testbed = testbed.Testbed() super(WebmentionTest, self).setUp()
self.testbed.activate()
hrd_policy = datastore_stub_util.PseudoRandomHRConsistencyPolicy(probability=.5)
self.testbed.init_datastore_v3_stub(consistency_policy=hrd_policy)
self.testbed.init_memcache_stub()
self.reply_html = u"""\ self.reply_html = u"""\
<html> <html>
<body> <body>
@ -70,9 +61,6 @@ class WebmentionTest(unittest.TestCase):
</entry> </entry>
""" """
def tearDown(self):
self.testbed.deactivate()
def test_webmention_activitypub(self, mock_get, mock_post): def test_webmention_activitypub(self, mock_get, mock_post):
article_as = { article_as = {
'@context': ['https://www.w3.org/ns/activitystreams'], '@context': ['https://www.w3.org/ns/activitystreams'],

23
test/testutil.py 100644
Wyświetl plik

@ -0,0 +1,23 @@
"""Common test utility code.
"""
import unittest
from google.appengine.datastore import datastore_stub_util
from google.appengine.ext import testbed
class TestCase(unittest.TestCase):
maxDiff = None
def setUp(self):
super(TestCase, self).setUp()
self.testbed = testbed.Testbed()
self.testbed.activate()
hrd_policy = datastore_stub_util.PseudoRandomHRConsistencyPolicy(probability=.5)
self.testbed.init_datastore_v3_stub(consistency_policy=hrd_policy)
self.testbed.init_memcache_stub()
def tearDown(self):
self.testbed.deactivate()
super(TestCase, self).tearDown()