def test_size_zero_buffer(self):
     b = RingBuffer(0)
     self.assertEqual(b.bytes_total(), 0)
     self.assertEqual(b.bytes_free(), 0)
     self.assertEqual(b.bytes_used(), 0)
     with self.assertRaises(ValueError):
         b.write(b"a")
    def test_size_one_buffer(self):
        b = RingBuffer(1)
        self.assertEqual(b.bytes_total(), 1)
        self.assertEqual(b.bytes_free(), 1)
        self.assertEqual(b.bytes_used(), 0)

        b.write(b"a")
        self.assertEqual(b.bytes_total(), 1)
        self.assertEqual(b.bytes_free(), 0)
        self.assertEqual(b.bytes_used(), 1)

        self.assertEqual(b.read(), b"a")
        self.assertEqual(b.bytes_total(), 1)
        self.assertEqual(b.bytes_free(), 1)
        self.assertEqual(b.bytes_used(), 0)

        self.assertEqual(b.read(), None)

        b.write(b"b")
        self.assertEqual(b.read(), b"b")
        self.assertEqual(b.read(), None)