scieloorg/balaio — pull request #275 by jamilatta (2014-03-14 14:31:59+00:00)
Title: XML-RPC para atualizar o proceed_to_checkout do Attempt

Pessoal,

foi criado um method no httpd para marcar o attempt como elegível para checkout, porém, acredito que tenha algo errado com os testes do httpd que não consegui descobrir. O sintoma é muito estranho: "ao adicionar qualquer teste que realize operação de escrita no modelo attempt muda a quantidade de itens no momento dos testes do ArticlePkg, ou seja um teste que esta esperando 3 itens passa a ter 6 itens e assim por diante...", de qualquer maneira realizei testes isolado e da certo.

Os testes....

```python
def test_proceed_to_checkout_xmlrpc_method(self):
import xmlrpclib
attempt_id = self._loaded_fixtures[0].id

packet = xmlrpclib.dumps((attempt_id,), methodname='proceed_to_checkout')

request = testing.DummyRequest()
request.db = models.ScopedSession
request.body = packet
request.content_length = len(packet)

response = httpd.proceed_to_checkout(request)

self.assertEqual(response.content_type, 'text/xml')
self.assertEqual(response.body, xmlrpclib.dumps((True,),
methodresponse=True))
self.assertEqual(response.content_length, len(response.body))
self.assertEqual(response.status, '200 OK')

def test_proceed_to_checkout_xmlrpc_method_inexistent_id(self):
import xmlrpclib
attempt_id = 9999

packet = xmlrpclib.dumps((attempt_id,), methodname='proceed_to_checkout')

request = testing.DummyRequest()
request.db = models.ScopedSession
request.body = packet
request.content_length = len(packet)

response = httpd.proceed_to_checkout(request)

self.assertEqual(response.content_type, 'text/xml')
self.assertEqual(response.body, xmlrpclib.dumps((False,),
methodresponse=True))
self.assertEqual(response.content_length, len(response.body))
self.assertEqual(response.status, '200 OK')

def test_proceed_to_checkout_xmlrpc_method_without_param(self):
import xmlrpclib
attempt_id = self._loaded_fixtures[0].id

packet = xmlrpclib.dumps((), methodname='proceed_to_checkout')

request = testing.DummyRequest()
request.db = models.ScopedSession
request.body = packet
request.content_length = len(packet)

response = httpd.proceed_to_checkout(request)

self.assertEqual(response.content_type, 'text/xml')
self.assertEqual(response.body, xmlrpclib.dumps((),
methodresponse=True))
self.assertEqual(response.content_length, len(response.body))
self.assertEqual(response.status, '200 OK')
```