def test_get_nowait_from_empty_queue_raises_queue_empty(self):
        # Arrange
        queue = Queue()

        # Act, Assert
        with pytest.raises(asyncio.QueueEmpty):
            queue.get_nowait()
    def test_get_nowait(self):
        # Arrange
        queue = Queue()
        queue.put_nowait("A")

        # Act
        item = queue.get_nowait()

        # Assert
        assert queue.empty()
        assert item == "A"
    def test_get_nowait(self):
        # Arrange
        queue = Queue()
        queue.put_nowait("A")

        # Act
        item = queue.get_nowait()

        # Assert
        self.assertEqual(0, queue.qsize())
        self.assertEqual("A", item)
        async def run_test():
            # Arrange
            queue = Queue()
            await queue.put("A")

            # Act
            item = queue.get_nowait()

            # Assert
            self.assertEqual(0, queue.qsize())
            self.assertEqual("A", item)
        async def run_test():
            # Arrange
            queue = Queue()
            await queue.put("A")

            # Act
            item = queue.get_nowait()

            # Assert
            assert queue.empty()
            assert item == "A"
    def test_as_list_when_items_returns_expected_list(self):
        # Arrange
        queue = Queue()
        queue.put_nowait("A")
        queue.put_nowait("B")
        queue.put_nowait("C")

        # Act
        result = queue.to_list()

        # Assert
        assert result == ["C", "B", "A"]
        assert queue.get_nowait() == "A"
        assert result == ["C", "B", "A"]  # <-- confirm was copy