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
"""Unit tests for models.py."""
from __future__ import unicode_literals
import unittest
from google.appengine.datastore import datastore_stub_util
from google.appengine.ext import testbed
import models
import testutil
class ModelsTest(unittest.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()
class ModelsTest(testutil.TestCase):
def test_magic_key_get_or_create(self):
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
import copy
import unittest
import urllib
from google.appengine.datastore import datastore_stub_util
from google.appengine.ext import testbed
from django_salmon import magicsigs
import mock
from oauth_dropins.webutil import testutil
from oauth_dropins.webutil.testutil import UrlopenResult
import requests
import common
import models
from salmon import app
import testutil
@mock.patch('requests.post')
@mock.patch('requests.get')
@mock.patch('urllib2.urlopen')
class SalmonTest(unittest.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()
class SalmonTest(testutil.TestCase):
def test_slap(self, mock_urlopen, mock_get, mock_post):
# salmon magic key discovery. first host-meta, then webfinger
key = models.MagicKey.get_or_create('alice')
mock_urlopen.side_effect = [
testutil.UrlopenResult(200, """\
UrlopenResult(200, """\
<?xml version='1.0' encoding='UTF-8'?>
<XRD xmlns='http://docs.oasis-open.org/ns/xri/xrd-1.0'>
<Link rel='lrdd' type='application/xrd+xml' template='http://webfinger/{uri}' />
</XRD>"""),
testutil.UrlopenResult(200, """\
UrlopenResult(200, """\
<?xml version='1.0' encoding='UTF-8'?>
<XRD xmlns='http://docs.oasis-open.org/ns/xri/xrd-1.0'>
<Subject>alice@fedsoc.net</Subject>

Wyświetl plik

@ -5,10 +5,6 @@ TODO: test error handling
"""
from __future__ import unicode_literals
import json
import unittest
from google.appengine.datastore import datastore_stub_util
from google.appengine.ext import testbed
import mock
from oauth_dropins.webutil import util
@ -16,23 +12,11 @@ import requests
import common
import models
import testutil
from webfinger import app
class WebFingerTest(unittest.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()
class WebFingerTest(testutil.TestCase):
def test_host_meta_handler_xrd(self):
got = app.get_response('/.well-known/host-meta')

Wyświetl plik

@ -6,13 +6,11 @@ TODO: test error handling
from __future__ import unicode_literals
import copy
import json
import unittest
import urllib
import urllib2
from django_salmon import magicsigs, utils
import feedparser
from google.appengine.datastore import datastore_stub_util
from google.appengine.ext import testbed
import mock
from mock import call
from oauth_dropins.webutil import util
@ -20,25 +18,18 @@ import requests
import activitypub
import common
from django_salmon import magicsigs, utils
import models
import testutil
import webmention
from webmention import app
@mock.patch('requests.post')
@mock.patch('requests.get')
class WebmentionTest(unittest.TestCase):
maxDiff = None
class WebmentionTest(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()
super(WebmentionTest, self).setUp()
self.reply_html = u"""\
<html>
<body>
@ -70,9 +61,6 @@ class WebmentionTest(unittest.TestCase):
</entry>
"""
def tearDown(self):
self.testbed.deactivate()
def test_webmention_activitypub(self, mock_get, mock_post):
article_as = {
'@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()