def test_set_reader(self):
        reader = make_reader(1)

        splitter = UniformSplitter(self.project_id,
                                   self.vault_id,
                                   reader)

        self.assertEqual(reader, splitter.input_stream)

        new_reader = make_reader(2)
        splitter.input_stream = new_reader

        self.assertEqual(new_reader, splitter.input_stream)

        splitter._set_state('processing')

        with self.assertRaises(RuntimeError):
            splitter.input_stream = reader
    def test_set_reader_no_read(self):
        class X(object):
            def tell():
                pass

        reader = make_reader(1)

        splitter = UniformSplitter(self.project_id,
                                   self.vault_id,
                                   reader)

        with self.assertRaises(AttributeError):
            splitter.input_stream = X()