コード例 #1
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()
コード例 #2
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()