Skip to content
This repository was archived by the owner on Apr 19, 2026. It is now read-only.
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Use included protorpc library instead of an external version.
  • Loading branch information
inklesspen committed Jul 27, 2018
commit 6044e4975dcd101f31ad1c381271726d448ca4fb
6 changes: 3 additions & 3 deletions endpoints/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@
# pylint: disable=wildcard-import
from __future__ import absolute_import

from protorpc import message_types
from protorpc import messages
from protorpc import remote
from .internal.protorpc import message_types
from .internal.protorpc import messages
from .internal.protorpc import remote

from .api_config import api, method
from .api_config import AUTH_LEVEL, EMAIL_SCOPE
Expand Down
2 changes: 1 addition & 1 deletion endpoints/_endpointscfg_impl.py
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@ def GenApiConfig(service_class_names, config_string_generator=None,
resolved_services.extend(service.get_api_classes())
elif (not isinstance(service, type) or
not issubclass(service, remote.Service)):
raise TypeError('%s is not a ProtoRPC service' % service_class_name)
raise TypeError('%s is not a subclass of endpoints.remote.Service' % service_class_name)
else:
resolved_services.append(service)

Expand Down
2 changes: 1 addition & 1 deletion endpoints/api_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ def entries_get(self, request):

import attr
import semver
from protorpc import util
from .internal.protorpc import util

from . import api_exceptions
from . import constants
Expand Down
6 changes: 5 additions & 1 deletion endpoints/apiserving.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ def list(self, request):

from endpoints_management.control import client as control_client
from endpoints_management.control import wsgi as control_wsgi
from protorpc.wsgi import service as wsgi_service
from .internal.protorpc.wsgi import service as wsgi_service

from . import api_config
from . import api_exceptions
Expand Down Expand Up @@ -564,6 +564,10 @@ def api_server(api_services, **kwargs):
if 'protocols' in kwargs:
raise TypeError("__init__() got an unexpected keyword argument 'protocols'")

for service in api_services:
if not issubclass(service, remote.Service):
raise TypeError('%s is not a subclass of endpoints.remote.Service' % service)

# Construct the api serving app
apis_app = _ApiServer(api_services, **kwargs)
dispatcher = endpoints_dispatcher.EndpointsDispatcherMiddleware(apis_app)
Expand Down
2 changes: 1 addition & 1 deletion endpoints/protojson.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

import base64

from protorpc import protojson
from .internal.protorpc import protojson

from . import messages

Expand Down
19 changes: 19 additions & 0 deletions endpoints/test/apiserving_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
import urllib2

import mock
import pytest
import test_util
import webtest
from endpoints import api_config
Expand All @@ -38,6 +39,8 @@
from endpoints import remote
from endpoints import resource_container

from protorpc import remote as nonbundled_remote

package = 'endpoints.test'


Expand Down Expand Up @@ -362,5 +365,21 @@ def testGetApiConfigs(self):
self.assertEqual(TEST_SERVICE_CUSTOM_URL_API_CONFIG, configs)


@api_config.api(name='testapi', version='v3', description='A wonderful API.')
class TestNonbundledService(nonbundled_remote.Service):

@api_config.method(test_request,
message_types.VoidMessage,
http_method='DELETE', path='items/{id}')
# Silence lint warning about method naming conventions
# pylint: disable=g-bad-name
def delete(self, unused_request):
return message_types.VoidMessage()


def test_nonbundled_service_error():
with pytest.raises(TypeError):
apiserving.api_server([TestNonbundledService])

if __name__ == '__main__':
unittest.main()
2 changes: 1 addition & 1 deletion test-requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ pytest>=2.8.3
pytest-cov>=1.8.1
pytest-timeout>=1.0.0
webtest>=2.0.23,<3.0
git+git://github.com/inklesspen/protorpc.git@endpoints-dependency#egg=protorpc-0.12.0a0
protorpc>=0.12.0
protobuf>=3.0.0b3
PyYAML==3.12