Skip to content

Commit

Permalink
Merge pull request #366 from magopian/1090184-get-rid-of-test-utils
Browse files Browse the repository at this point in the history
Get rid of test_utils (bug 1090184)
  • Loading branch information
magopian committed Nov 27, 2014
2 parents e9f2b24 + fe7cbd7 commit ed30ce8
Show file tree
Hide file tree
Showing 99 changed files with 485 additions and 237 deletions.
2 changes: 1 addition & 1 deletion .travis.yml
Expand Up @@ -15,7 +15,7 @@ before_script:
- mysql -e 'create database olympia;'
- make update_assets
script:
- FORCE_DB=1 DJANGO_SETTINGS_MODULE=settings_ci make flake8 && make test
- DJANGO_SETTINGS_MODULE=settings_ci make flake8 && DJANGO_SETTINGS_MODULE=settings_ci make test
- make docs SPHINXOPTS='-nW'
notifications:
irc:
Expand Down
8 changes: 4 additions & 4 deletions Makefile
Expand Up @@ -26,16 +26,16 @@ docs:
$(MAKE) -C docs html

test:
python manage.py test --with-blockage --noinput --logging-clear-handlers --with-id -v 2 $(ARGS)
REUSE_DB=1 python manage.py test --with-blockage --noinput --logging-clear-handlers --with-id -v 2 $(ARGS)

test_force_db:
FORCE_DB=1 python manage.py test --with-blockage --noinput --logging-clear-handlers --with-id -v 2 $(ARGS)
python manage.py test --with-blockage --noinput --logging-clear-handlers --with-id -v 2 $(ARGS)

tdd:
python manage.py test --with-blockage --noinput --failfast --pdb --with-id -v 2 $(ARGS)
REUSE_DB=1 python manage.py test --with-blockage --noinput --failfast --pdb --with-id -v 2 $(ARGS)

test_failed:
python manage.py test --with-blockage --noinput --logging-clear-handlers --with-id -v 2 --failed $(ARGS)
REUSE_DB=1 python manage.py test --with-blockage --noinput --logging-clear-handlers --with-id -v 2 --failed $(ARGS)

initialize_db:
python manage.py reset_db
Expand Down
2 changes: 2 additions & 0 deletions apps/access/tests.py
Expand Up @@ -79,6 +79,7 @@ class TestHasPerm(TestCase):
fixtures = ['base/users', 'base/addon_3615']

def setUp(self):
super(TestHasPerm, self).setUp()
assert self.client.login(username='del@icio.us', password='password')
self.user = UserProfile.objects.get(email='del@icio.us')
self.addon = Addon.objects.get(id=3615)
Expand Down Expand Up @@ -201,6 +202,7 @@ class TestCheckReviewer(TestCase):
fixtures = ['base/addon_3615', 'addons/persona']

def setUp(self):
super(TestCheckReviewer, self).setUp()
self.user = UserProfile.objects.get()
self.persona = Addon.objects.get(pk=15663)
self.addon = Addon.objects.get(pk=3615)
Expand Down
1 change: 1 addition & 0 deletions apps/addons/tests/test_buttons.py
Expand Up @@ -23,6 +23,7 @@ def setup():
class ButtonTest(amo.tests.TestCase):

def setUp(self):
super(ButtonTest, self).setUp()
self.addon = Mock()
self.addon.is_featured.return_value = False
self.addon.is_unreviewed.return_value = False
Expand Down
1 change: 1 addition & 0 deletions apps/addons/tests/test_cron.py
Expand Up @@ -117,6 +117,7 @@ class TestHideDisabledFiles(amo.tests.TestCase):
msg = 'Moving disabled file: %s => %s'

def setUp(self):
super(TestHideDisabledFiles, self).setUp()
p = amo.PLATFORM_ALL.id
self.addon = Addon.objects.create(type=amo.ADDON_EXTENSION)
self.version = Version.objects.create(addon=self.addon)
Expand Down
1 change: 1 addition & 0 deletions apps/addons/tests/test_decorators.py
Expand Up @@ -11,6 +11,7 @@
class TestAddonView(amo.tests.TestCase):

def setUp(self):
super(TestAddonView, self).setUp()
self.addon = Addon.objects.create(slug='x', type=1)
self.func = mock.Mock()
self.func.return_value = mock.sentinel.OK
Expand Down
3 changes: 3 additions & 0 deletions apps/addons/tests/test_forms.py
Expand Up @@ -89,6 +89,7 @@ class TestTagsForm(amo.tests.TestCase):
fixtures = ['base/addon_3615', 'base/users']

def setUp(self):
super(TestTagsForm, self).setUp()
self.addon = Addon.objects.get(pk=3615)
category = Category.objects.get(pk=22)
category.name = 'test'
Expand Down Expand Up @@ -215,6 +216,7 @@ class TestIconForm(amo.tests.TestCase):
# TODO: AddonFormMedia save() method could do with cleaning up
# so this isn't necessary
def setUp(self):
super(TestIconForm, self).setUp()
self.temp_dir = tempfile.mkdtemp()
self.addon = Addon.objects.get(pk=3615)

Expand All @@ -227,6 +229,7 @@ class DummyRequest:

def tearDown(self):
rm_local_tmp_dir(self.temp_dir)
super(TestIconForm, self).tearDown()

def get_icon_paths(self):
path = os.path.join(self.addon.get_icon_dir(), str(self.addon.id))
Expand Down
1 change: 1 addition & 0 deletions apps/addons/tests/test_helpers.py
Expand Up @@ -126,6 +126,7 @@ class TestPerformanceNote(amo.tests.TestCase):
not_listing = '<div class="notification performance-note">'

def setUp(self):
super(TestPerformanceNote, self).setUp()
request_mock = Mock()
request_mock.APP = amo.FIREFOX
self.ctx = {'request': request_mock, 'amo': amo}
Expand Down
19 changes: 15 additions & 4 deletions apps/addons/tests/test_models.py
Expand Up @@ -186,6 +186,7 @@ class TestAddonManager(amo.tests.TestCase):
'bandwagon/featured_collections', 'base/addon_5299_gcal']

def setUp(self):
super(TestAddonManager, self).setUp()
set_user(None)

def test_featured(self):
Expand Down Expand Up @@ -314,13 +315,15 @@ class TestAddonModels(amo.tests.TestCase):
'bandwagon/featured_collections']

def setUp(self):
super(TestAddonModels, self).setUp()
TranslationSequence.objects.create(id=99243)
# TODO(andym): use Mock appropriately here.
self.old_version = amo.FIREFOX.latest_version
amo.FIREFOX.latest_version = '3.6.15'

def tearDown(self):
amo.FIREFOX.latest_version = self.old_version
super(TestAddonModels, self).tearDown()

def test_current_version(self):
"""
Expand Down Expand Up @@ -1498,6 +1501,7 @@ class TestGetVersion(amo.tests.TestCase):
fixtures = ['base/addon_3615', ]

def setUp(self):
super(TestGetVersion, self).setUp()
self.addon = Addon.objects.get(id=3615)
self.version = self.addon.current_version

Expand Down Expand Up @@ -1575,6 +1579,7 @@ class TestAddonModelsFeatured(amo.tests.TestCase):
'base/addon_3615', 'base/collections', 'base/featured']

def setUp(self):
super(TestAddonModelsFeatured, self).setUp()
# Addon._featured keeps an in-process cache we need to clear.
if hasattr(Addon, '_featured'):
del Addon._featured
Expand All @@ -1595,6 +1600,7 @@ class TestBackupVersion(amo.tests.TestCase):
fixtures = ['addons/update', 'base/appversion']

def setUp(self):
super(TestBackupVersion, self).setUp()
self.version_1_2_0 = 105387
self.addon = Addon.objects.get(pk=1865)
set_user(None)
Expand Down Expand Up @@ -1675,6 +1681,7 @@ class TestPersonaModel(amo.tests.TestCase):
fixtures = ['addons/persona']

def setUp(self):
super(TestPersonaModel, self).setUp()
self.addon = Addon.objects.get(id=15663)
self.persona = self.addon.persona
self.persona.header = 'header.png'
Expand Down Expand Up @@ -1833,11 +1840,9 @@ def test_unique_dependencies(self):
a = Addon.objects.get(id=5299)
b = Addon.objects.get(id=3615)
AddonDependency.objects.create(addon=a, dependent_addon=b)
try:
AddonDependency.objects.create(addon=a, dependent_addon=b)
except IntegrityError:
pass
eq_(list(a.dependencies.values_list('id', flat=True)), [3615])
with self.assertRaises(IntegrityError):
AddonDependency.objects.create(addon=a, dependent_addon=b)


class TestListedAddonTwoVersions(amo.tests.TestCase):
Expand All @@ -1856,6 +1861,7 @@ class TestFlushURLs(amo.tests.TestCase):
'addons/persona']

def setUp(self):
super(TestFlushURLs, self).setUp()
settings.ADDON_ICON_URL = (
settings.STATIC_URL +
'img/uploads/addon_icons/%s/%s-%s.png?modified=%s')
Expand All @@ -1869,6 +1875,7 @@ def setUp(self):

def tearDown(self):
_disconnect()
super(TestFlushURLs, self).tearDown()

def is_url_hashed(self, url):
return urlparse(url).query.find('modified') > -1
Expand Down Expand Up @@ -2033,6 +2040,7 @@ def test_remove_version_locale(self):
class TestUpdateNames(amo.tests.TestCase):

def setUp(self):
super(TestUpdateNames, self).setUp()
self.addon = Addon.objects.create(type=amo.ADDON_EXTENSION)
self.addon.name = self.names = {'en-US': 'woo'}
self.addon.save()
Expand Down Expand Up @@ -2121,6 +2129,7 @@ def test_default_locale_removal_not_deleted(self):
class TestAddonWatchDisabled(amo.tests.TestCase):

def setUp(self):
super(TestAddonWatchDisabled, self).setUp()
self.addon = Addon(type=amo.ADDON_THEME, disabled_by_user=False,
status=amo.STATUS_PUBLIC)
self.addon.save()
Expand Down Expand Up @@ -2246,6 +2255,7 @@ def test_extract_not_platform_mobile(self):
class TestCompatOverride(amo.tests.TestCase):

def setUp(self):
super(TestCompatOverride, self).setUp()
self.app = amo.APP_IDS[1]

one = CompatOverride.objects.create(guid='one')
Expand Down Expand Up @@ -2384,6 +2394,7 @@ def test_collapsed_ranges_multiple_versions_and_apps(self):
class TestIncompatibleVersions(amo.tests.TestCase):

def setUp(self):
super(TestIncompatibleVersions, self).setUp()
self.app = amo.APP_IDS[amo.FIREFOX.id]
self.addon = Addon.objects.create(guid='r@b', type=amo.ADDON_EXTENSION)

Expand Down
1 change: 1 addition & 0 deletions apps/addons/tests/test_search.py
Expand Up @@ -10,6 +10,7 @@ class TestExtract(amo.tests.TestCase):
fixtures = ['base/users', 'base/addon_3615']

def setUp(self):
super(TestExtract, self).setUp()
self.attrs = ('id', 'slug', 'created', 'last_updated',
'weekly_downloads', 'average_daily_users', 'status',
'type', 'hotness', 'is_disabled', 'premium_type')
Expand Down
2 changes: 2 additions & 0 deletions apps/addons/tests/test_theme_update.py
Expand Up @@ -18,6 +18,7 @@
class TestWSGIApplication(amo.tests.TestCase):

def setUp(self):
super(TestWSGIApplication, self).setUp()
self.environ = {'wsgi.input': StringIO()}
self.start_response = mock.Mock()

Expand Down Expand Up @@ -65,6 +66,7 @@ class TestThemeUpdate(amo.tests.TestCase):
fixtures = ['addons/persona']

def setUp(self):
super(TestThemeUpdate, self).setUp()
self.good = {
'username': 'persona_author',
'description': 'yolo',
Expand Down
12 changes: 12 additions & 0 deletions apps/addons/tests/test_views.py
Expand Up @@ -71,6 +71,7 @@ def test_hovercards(self, doc, addons, src=''):
class TestHomepage(amo.tests.TestCase):

def setUp(self):
super(TestHomepage, self).setUp()
self.base_url = reverse('home')

def test_thunderbird(self):
Expand Down Expand Up @@ -103,6 +104,7 @@ class TestHomepageFeatures(amo.tests.TestCase):
'bandwagon/featured_collections']

def setUp(self):
super(TestHomepageFeatures, self).setUp()
self.url = reverse('home')

def test_no_unreviewed(self):
Expand Down Expand Up @@ -165,6 +167,7 @@ class TestContributeInstalled(amo.tests.TestCase):
fixtures = ['base/appversion', 'base/addon_592']

def setUp(self):
super(TestContributeInstalled, self).setUp()
self.addon = Addon.objects.get(pk=592)
self.url = reverse('addons.installed', args=['a592'])

Expand Down Expand Up @@ -195,6 +198,7 @@ class TestContributeEmbedded(amo.tests.TestCase):
fixtures = ['base/addon_3615', 'base/addon_592', 'base/users']

def setUp(self):
super(TestContributeEmbedded, self).setUp()
self.addon = Addon.objects.get(pk=592)
self.detail_url = self.addon.get_url_path()

Expand Down Expand Up @@ -447,6 +451,7 @@ class TestLicensePage(amo.tests.TestCase):
fixtures = ['base/addon_3615']

def setUp(self):
super(TestLicensePage, self).setUp()
self.addon = Addon.objects.get(id=3615)
self.version = self.addon.current_version

Expand Down Expand Up @@ -500,6 +505,7 @@ class TestDetailPage(amo.tests.TestCase):
'addons/persona']

def setUp(self):
super(TestDetailPage, self).setUp()
self.addon = Addon.objects.get(id=3615)
self.url = self.addon.get_url_path()

Expand Down Expand Up @@ -834,6 +840,7 @@ class TestImpalaDetailPage(amo.tests.TestCase):
fixtures = ['base/addon_3615', 'base/addon_592', 'base/users']

def setUp(self):
super(TestImpalaDetailPage, self).setUp()
self.addon = Addon.objects.get(id=3615)
self.url = self.addon.get_url_path()
self.more_url = self.addon.get_url_path(more=True)
Expand Down Expand Up @@ -1015,6 +1022,7 @@ def create_addon_user(self, addon):
class TestPersonaDetailPage(TestPersonas, amo.tests.TestCase):

def setUp(self):
super(TestPersonas, self).setUp()
self.addon = Addon.objects.get(id=15663)
self.persona = self.addon.persona
self.url = self.addon.get_url_path()
Expand Down Expand Up @@ -1089,6 +1097,7 @@ class TestStatus(amo.tests.TestCase):
fixtures = ['base/addon_3615', 'addons/persona']

def setUp(self):
super(TestStatus, self).setUp()
self.addon = Addon.objects.get(id=3615)
self.version = self.addon.current_version
self.file = self.version.all_files[0]
Expand Down Expand Up @@ -1197,6 +1206,7 @@ class TestEula(amo.tests.TestCase):
fixtures = ['addons/eula+contrib-addon']

def setUp(self):
super(TestEula, self).setUp()
self.addon = Addon.objects.get(id=11730)
self.url = self.get_url()

Expand Down Expand Up @@ -1299,6 +1309,7 @@ class TestPrivacyPolicy(amo.tests.TestCase):
fixtures = ['addons/eula+contrib-addon']

def setUp(self):
super(TestPrivacyPolicy, self).setUp()
self.addon = Addon.objects.get(id=11730)
self.url = reverse('addons.privacy', args=[self.addon.slug])

Expand Down Expand Up @@ -1333,6 +1344,7 @@ class TestReportAbuse(amo.tests.TestCase):
fixtures = ['addons/persona', 'base/addon_3615', 'base/users']

def setUp(self):
super(TestReportAbuse, self).setUp()
self.full_page = reverse('addons.abuse', args=['a3615'])

@patch('captcha.fields.ReCaptchaField.clean')
Expand Down
7 changes: 3 additions & 4 deletions apps/amo/runner.py
@@ -1,13 +1,12 @@
from django.conf import settings
from django.db.models import loading

from test_utils.runner import RadicalTestSuiteRunner
import django_nose


class RadicalTestSuiteRunnerWithExtraApps(RadicalTestSuiteRunner):
class TestRunner(django_nose.NoseTestSuiteRunner):
def setup_test_environment(self, **kwargs):
rval = super(RadicalTestSuiteRunnerWithExtraApps,
self).setup_test_environment(**kwargs)
rval = super(TestRunner, self).setup_test_environment(**kwargs)
extra_apps = getattr(settings, 'TEST_INSTALLED_APPS')
if extra_apps:
installed_apps = getattr(settings, 'INSTALLED_APPS')
Expand Down

0 comments on commit ed30ce8

Please sign in to comment.