mirror of
				https://github.com/django/daphne.git
				synced 2025-11-04 01:27:33 +03:00 
			
		
		
		
	Fix bug with sending empty response
This commit is contained in:
		
							parent
							
								
									be1498768f
								
							
						
					
					
						commit
						5c9093ddeb
					
				| 
						 | 
				
			
			@ -268,6 +268,9 @@ class AsgiHandler(base.BaseHandler):
 | 
			
		|||
        Yields (chunk, last_chunk) tuples.
 | 
			
		||||
        """
 | 
			
		||||
        position = 0
 | 
			
		||||
        if not data:
 | 
			
		||||
            yield data, True
 | 
			
		||||
            return
 | 
			
		||||
        while position < len(data):
 | 
			
		||||
            yield (
 | 
			
		||||
                data[position:position + cls.chunk_size],
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -88,3 +88,30 @@ class HandlerTests(SimpleTestCase):
 | 
			
		|||
        self.assertEqual(reply_messages[0]["more_content"], True)
 | 
			
		||||
        self.assertEqual(reply_messages[1]["content"], b"andhereistherest")
 | 
			
		||||
        self.assertEqual(reply_messages[1].get("more_content", False), False)
 | 
			
		||||
 | 
			
		||||
    def test_chunk_bytes(self):
 | 
			
		||||
        """
 | 
			
		||||
        Makes sure chunk_bytes works correctly
 | 
			
		||||
        """
 | 
			
		||||
        # Empty string should still return one chunk
 | 
			
		||||
        result = list(FakeAsgiHandler.chunk_bytes(b""))
 | 
			
		||||
        self.assertEqual(len(result), 1)
 | 
			
		||||
        self.assertEqual(result[0][0], b"")
 | 
			
		||||
        self.assertEqual(result[0][1], True)
 | 
			
		||||
        # Below chunk size
 | 
			
		||||
        result = list(FakeAsgiHandler.chunk_bytes(b"12345678901234567890123456789"))
 | 
			
		||||
        self.assertEqual(len(result), 1)
 | 
			
		||||
        self.assertEqual(result[0][0], b"12345678901234567890123456789")
 | 
			
		||||
        self.assertEqual(result[0][1], True)
 | 
			
		||||
        # Exactly chunk size
 | 
			
		||||
        result = list(FakeAsgiHandler.chunk_bytes(b"123456789012345678901234567890"))
 | 
			
		||||
        self.assertEqual(len(result), 1)
 | 
			
		||||
        self.assertEqual(result[0][0], b"123456789012345678901234567890")
 | 
			
		||||
        self.assertEqual(result[0][1], True)
 | 
			
		||||
        # Just above chunk size
 | 
			
		||||
        result = list(FakeAsgiHandler.chunk_bytes(b"123456789012345678901234567890a"))
 | 
			
		||||
        self.assertEqual(len(result), 2)
 | 
			
		||||
        self.assertEqual(result[0][0], b"123456789012345678901234567890")
 | 
			
		||||
        self.assertEqual(result[0][1], False)
 | 
			
		||||
        self.assertEqual(result[1][0], b"a")
 | 
			
		||||
        self.assertEqual(result[1][1], True)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user