9
from zope.component import getUtility
11
10
from canonical.launchpad.testing.pages import (
12
11
LaunchpadWebServiceCaller,
13
12
webservice_for_person,
15
from canonical.launchpad.webapp.interfaces import IPlacelessAuthUtility
16
14
from canonical.launchpad.webapp.servers import WebServiceTestRequest
17
15
from canonical.testing.layers import DatabaseFunctionalLayer
18
16
from lp.app.webservice.marshallers import TextFieldMarshaller
19
from lp.testing import logout, TestCaseWithFactory
17
from lp.testing import (
29
31
layer = DatabaseFunctionalLayer
31
def _makeRequest(self, is_anonymous):
32
"""Create either an anonymous or authenticated request."""
33
request = WebServiceTestRequest()
36
getUtility(IPlacelessAuthUtility).unauthenticatedPrincipal())
38
request.setPrincipal(self.factory.makePerson())
41
33
def test_unmarshall_obfuscated(self):
42
# Data is obfuccated if the request is anonynous.
43
request = self._makeRequest(is_anonymous=True)
44
marshaller = TextFieldMarshaller(None, request)
34
# Data is obfuscated if the user is anonynous.
35
marshaller = TextFieldMarshaller(None, WebServiceTestRequest())
45
36
result = marshaller.unmarshall(None, u"foo@example.com")
46
37
self.assertEqual(u"<email address hidden>", result)
48
39
def test_unmarshall_not_obfuscated(self):
49
# Data is not obfuccated if the request is authenticated.
50
request = self._makeRequest(is_anonymous=False)
51
marshaller = TextFieldMarshaller(None, request)
52
result = marshaller.unmarshall(None, u"foo@example.com")
40
# Data is not obfuccated if the user is authenticated.
41
marshaller = TextFieldMarshaller(None, WebServiceTestRequest())
42
with person_logged_in(self.factory.makePerson()):
43
result = marshaller.unmarshall(None, u"foo@example.com")
53
44
self.assertEqual(u"foo@example.com", result)