コード例 #1
0
ファイル: tests.py プロジェクト: RealGeeks/django-piston
 def setUp(self):
     super(self.__class__, self).setUp()
     self.data = TestModel()
     self.data.save()
     # Register to the WSGIRequest signals to get the latest generated
     # request object.
     signals.entry_request_started.connect(self.fetch_request)
コード例 #2
0
class MultiXMLTests(MainTests):
    def init_delegate(self):
        self.t1_data = TestModel()
        self.t1_data.save()
        self.t2_data = TestModel()
        self.t2_data.save()
        # XML field data to dynamically include in `expected` strings:
        self.test1_xml = '<test1>None</test1>'
        self.test2_xml = '<test2>None</test2>'

    def test_multixml(self):
        ## expected = b'<?xml version="1.0" encoding="utf-8"?>\n<response><resource><test1>None</test1><test2>None</test2></resource><resource><test1>None</test1><test2>None</test2></resource></response>'
        #PY3: Undetermined order of <testn> field elements
        expected = '<?xml version="1.0" encoding="utf-8"?>\n<response><resource>%s%s</resource><resource>%s%s</resource></response>'
        result = self.client.get('/api/entries.xml',
                HTTP_AUTHORIZATION=self.auth_string).content
        ## self.assertEqual(expected, result)
        self.assertIn(result, [ # Try all <testn> field orderings
          (expected % add(*xml)).encode('ascii') # result is bytes
          for xml in product(permutations((self.test1_xml, self.test2_xml)),
                             repeat=2)])

    def test_singlexml(self):
        obj = TestModel.objects.all()[0]
        ## expected = b'<?xml version="1.0" encoding="utf-8"?>\n<response><test1>None</test1><test2>None</test2></response>'
        #PY3: Undetermined order of <testn> field elements
        expected = '<?xml version="1.0" encoding="utf-8"?>\n<response>%s%s</response>'
        result = self.client.get('/api/entry-%d.xml' % (obj.pk,),
                HTTP_AUTHORIZATION=self.auth_string).content
        ## self.assertEqual(expected, result)
        self.assertIn(result, [ # Try all <testn> field orderings
          (expected % xml).encode('ascii') # result is bytes
          for xml in permutations((self.test1_xml, self.test2_xml))])
コード例 #3
0
 def init_delegate(self):
     self.t1_data = TestModel()
     self.t1_data.save()
     self.t2_data = TestModel()
     self.t2_data.save()
     # XML field data to dynamically include in `expected` strings:
     self.test1_xml = '<test1>None</test1>'
     self.test2_xml = '<test2>None</test2>'
コード例 #4
0
ファイル: tests.py プロジェクト: RealGeeks/django-piston
class Issue36RegressionTests(MainTests):
    """
    This testcase addresses #36 in django-piston where request.FILES is passed
    empty to the handler if the request.method is PUT.
    """
    def fetch_request(self, sender, request, *args, **kwargs):
        self.request = request

    def setUp(self):
        super(self.__class__, self).setUp()
        self.data = TestModel()
        self.data.save()
        # Register to the WSGIRequest signals to get the latest generated
        # request object.
        signals.entry_request_started.connect(self.fetch_request)

    def tearDown(self):
        super(self.__class__, self).tearDown()
        self.data.delete()
        signals.entry_request_started.disconnect(self.fetch_request)

    def test_simple(self):
        # First try it with POST to see if it works there
        if True:
            fp = open(__file__, 'r')
            try:
                response = self.client.post(
                    '/api/entries.xml', {'file': fp},
                    HTTP_AUTHORIZATION=self.auth_string)
                self.assertEquals(
                    1, len(self.request.FILES),
                    'request.FILES on POST is empty when it should contain 1 file'
                )
            finally:
                fp.close()

        if not hasattr(self.client, 'put'):
            import warnings
            warnings.warn(
                'Issue36RegressionTest partially requires Django 1.1 or newer. Skipped.'
            )
            return

        # ... and then with PUT
        fp = open(__file__, 'r')
        try:
            response = self.client.put('/api/entry-%d.xml' % self.data.pk,
                                       {'file': fp},
                                       HTTP_AUTHORIZATION=self.auth_string)
            self.assertEquals(
                1, len(self.request.FILES),
                'request.FILES on PUT is empty when it should contain 1 file')
        finally:
            fp.close()
コード例 #5
0
ファイル: tests.py プロジェクト: Hipo/django-piston
class Issue36RegressionTests(MainTests):
    """
    This testcase addresses #36 in django-piston where request.FILES is passed
    empty to the handler if the request.method is PUT.
    """

    def fetch_request(self, sender, request, *args, **kwargs):
        self.request = request

    def setUp(self):
        super(self.__class__, self).setUp()
        self.data = TestModel()
        self.data.save()
        # Register to the WSGIRequest signals to get the latest generated
        # request object.
        signals.entry_request_started.connect(self.fetch_request)

    def tearDown(self):
        super(self.__class__, self).tearDown()
        self.data.delete()
        signals.entry_request_started.disconnect(self.fetch_request)

    def test_simple(self):
        # First try it with POST to see if it works there
        if True:
            fp = open(__file__, "r")
            try:
                response = self.client.post("/api/entries.xml", {"file": fp}, HTTP_AUTHORIZATION=self.auth_string)
                self.assertEquals(
                    1, len(self.request.FILES), "request.FILES on POST is empty when it should contain 1 file"
                )
            finally:
                fp.close()

        if not hasattr(self.client, "put"):
            import warnings

            warnings.warn("Issue36RegressionTest partially requires Django 1.1 or newer. Skipped.")
            return

        # ... and then with PUT
        fp = open(__file__, "r")
        try:
            response = self.client.put(
                "/api/entry-%d.xml" % self.data.pk, {"file": fp}, HTTP_AUTHORIZATION=self.auth_string
            )
            self.assertEquals(1, len(self.request.FILES), "request.FILES on PUT is empty when it should contain 1 file")
        finally:
            fp.close()
コード例 #6
0
ファイル: tests.py プロジェクト: habeanf/django-piston
 def setUp(self):
     super(self.__class__, self).setUp()
     self.data = TestModel()
     self.data.save()
     # Register to the WSGIRequest signals to get the latest generated
     # request object.
     signals.entry_request_started.connect(self.fetch_request)
コード例 #7
0
ファイル: tests.py プロジェクト: Hipo/django-piston
class MultiXMLTests(MainTests):
    def init_delegate(self):
        self.t1_data = TestModel()
        self.t1_data.save()
        self.t2_data = TestModel()
        self.t2_data.save()

    def test_multixml(self):
        expected = '<?xml version="1.0" encoding="utf-8"?>\n<response><resource><test1>None</test1><test2>None</test2></resource><resource><test1>None</test1><test2>None</test2></resource></response>'
        result = self.client.get("/api/entries.xml", HTTP_AUTHORIZATION=self.auth_string).content
        self.assertEquals(expected, result)

    def test_singlexml(self):
        obj = TestModel.objects.all()[0]
        expected = '<?xml version="1.0" encoding="utf-8"?>\n<response><test1>None</test1><test2>None</test2></response>'
        result = self.client.get("/api/entry-%d.xml" % (obj.pk,), HTTP_AUTHORIZATION=self.auth_string).content
        self.assertEquals(expected, result)
コード例 #8
0
ファイル: tests.py プロジェクト: RealGeeks/django-piston
class MultiXMLTests(MainTests):
    def init_delegate(self):
        self.t1_data = TestModel()
        self.t1_data.save()
        self.t2_data = TestModel()
        self.t2_data.save()

    def test_multixml(self):
        expected = '<?xml version="1.0" encoding="utf-8"?>\n<response><resource><test1>None</test1><test2>None</test2></resource><resource><test1>None</test1><test2>None</test2></resource></response>'
        result = self.client.get('/api/entries.xml',
                                 HTTP_AUTHORIZATION=self.auth_string).content
        self.assertEquals(expected, result)

    def test_singlexml(self):
        obj = TestModel.objects.all()[0]
        expected = '<?xml version="1.0" encoding="utf-8"?>\n<response><test1>None</test1><test2>None</test2></response>'
        result = self.client.get('/api/entry-%d.xml' % (obj.pk, ),
                                 HTTP_AUTHORIZATION=self.auth_string).content
        self.assertEquals(expected, result)
コード例 #9
0
ファイル: tests.py プロジェクト: habeanf/django-piston
 def init_delegate(self):
     self.t1_data = TestModel()
     self.t1_data.save()
     self.t2_data = TestModel()
     self.t2_data.save()
コード例 #10
0
ファイル: tests.py プロジェクト: RealGeeks/django-piston
 def init_delegate(self):
     self.t1_data = TestModel()
     self.t1_data.save()
     self.t2_data = TestModel()
     self.t2_data.save()