diff --git a/socorro/middleware/middleware_app.py b/socorro/middleware/middleware_app.py index f392d4af34..5d38f48975 100755 --- a/socorro/middleware/middleware_app.py +++ b/socorro/middleware/middleware_app.py @@ -55,7 +55,6 @@ (r'/field/(.*)', 'field.Field'), (r'/gccrashes/(.*)', 'gccrashes.GCCrashes'), (r'/graphics_devices/(.*)', 'graphics_devices.GraphicsDevices'), - (r'/platforms/(.*)', 'platforms.Platforms'), (r'/priorityjobs/(.*)', 'priorityjobs.Priorityjobs'), (r'/products/build_types/(.*)', 'product_build_types.ProductBuildTypes'), (r'/products/(.*)', 'products.Products'), # deprecated diff --git a/socorro/unittest/middleware/test_middleware_app.py b/socorro/unittest/middleware/test_middleware_app.py index ef30e67050..19b559da88 100644 --- a/socorro/unittest/middleware/test_middleware_app.py +++ b/socorro/unittest/middleware/test_middleware_app.py @@ -807,17 +807,6 @@ def test_field(self): 'product': None }) - def test_platforms(self): - config_manager = self._setup_config_manager() - - with config_manager.context() as config: - app = middleware_app.MiddlewareApp(config) - app.main() - server = middleware_app.application - - response = self.get(server, '/platforms/') - eq_(response.data, {'hits': [], 'total': 0}) - def test_priorityjobs(self): config_manager = self._setup_config_manager() diff --git a/webapp-django/crashstats/crashstats/models.py b/webapp-django/crashstats/crashstats/models.py index 198e31c10c..2023f93d53 100644 --- a/webapp-django/crashstats/crashstats/models.py +++ b/webapp-django/crashstats/crashstats/models.py @@ -19,6 +19,7 @@ from socorro.external.es.base import ElasticsearchConfig from socorro.external.postgresql.crashstorage import PostgreSQLCrashStorage from socorro.app import socorro_app +import socorro.external.postgresql.platforms import socorro.external.postgresql.bugs import socorro.external.postgresql.products import socorro.external.postgresql.graphics_report @@ -889,7 +890,7 @@ def get(self): class Platforms(SocorroMiddleware): - URL_PREFIX = '/platforms/' + implementation = socorro.external.postgresql.platforms.Platforms API_WHITELIST = ( 'code', @@ -897,6 +898,10 @@ class Platforms(SocorroMiddleware): ) def get(self): + # XXX (peterbe, Mar 2016): Oh I wish we had stats on how many people + # are using /api/Platforms/. If we knew we could be brave about + # removing this legacy hack. + # When we first exposed this model it would just return a plain # list. It was hardcoded. To avoid deprecating things for people # we continue this trandition by only returning the hits directly diff --git a/webapp-django/crashstats/crashstats/tests/test_models.py b/webapp-django/crashstats/crashstats/tests/test_models.py index 6c1092b61d..15457c3330 100644 --- a/webapp-django/crashstats/crashstats/tests/test_models.py +++ b/webapp-django/crashstats/crashstats/tests/test_models.py @@ -1333,13 +1333,11 @@ def mocked_get(url, params, **options): channel='nightly') eq_(r['total'], 2) - @mock.patch('requests.get') - def test_platforms(self, rget): + def test_platforms(self): api = models.Platforms() - def mocked_get(url, **options): - assert '/platforms/' in url - return Response({ + def mocked_get(**options): + return { "hits": [ { "code": "win", @@ -1351,9 +1349,10 @@ def mocked_get(url, **options): } ], "total": 2 - }) + } + + models.Platforms.implementation().get.side_effect = mocked_get - rget.side_effect = mocked_get r = api.get() eq_(len(r), 2) assert 'Windows' in settings.DISPLAY_OS_NAMES diff --git a/webapp-django/crashstats/crashstats/tests/test_views.py b/webapp-django/crashstats/crashstats/tests/test_views.py index c9d5d1ccbe..5791ca51b6 100644 --- a/webapp-django/crashstats/crashstats/tests/test_views.py +++ b/webapp-django/crashstats/crashstats/tests/test_views.py @@ -318,30 +318,35 @@ def setUp(self, rget): 'The tests requires that you use LocMemCache when running' ) + def mocked_platforms_get(**options): + return { + "hits": [ + { + 'code': 'win', + 'name': 'Windows', + }, + { + 'code': 'mac', + 'name': 'Mac OS X', + }, + { + 'code': 'lin', + 'name': 'Linux', + } + ], + "total": 6 + } + + models.Platforms.implementation().get.side_effect = ( + mocked_platforms_get + ) + # we do this here so that the current/versions thing # is cached since that's going to be called later # in every view more or less def mocked_get(url, params, **options): now = datetime.datetime.utcnow() yesterday = now - datetime.timedelta(days=1) - if '/platforms/' in url: - return Response({ - "hits": [ - { - 'code': 'win', - 'name': 'Windows', - }, - { - 'code': 'mac', - 'name': 'Mac OS X', - }, - { - 'code': 'lin', - 'name': 'Linux', - } - ], - "total": 6 - }) if 'products/' in url: return Response(""" {"products": [