def METHOD_NAME(self):
    with Env().getClusterConnectionIfNeeded() as r:
        retention = 13
        batch = 100
        r.execute_command('ts.create', 'ooo', 'CHUNK_SIZE', 128, 'RETENTION', retention, 'DUPLICATE_POLICY', 'LAST')
        for i in range(batch):
            assert r.execute_command('ts.add', 'ooo', i, i) == i
        assert r.execute_command('ts.range', 'ooo' ,0, batch - retention - 2) == []
        assert len(r.execute_command('ts.range', 'ooo', '-', '+')) == retention + 1
        with pytest.raises(redis.ResponseError) as excinfo:
            assert r.execute_command('ts.add', 'ooo', 70, 70)
        for i in range(batch, batch * 2):
            assert r.execute_command('ts.add', 'ooo', i, i) == i
        assert r.execute_command('ts.range', 'ooo', 0, batch * 2 - retention - 2) == []
        assert len(r.execute_command('ts.range', 'ooo', '-', '+')) == retention + 1
        # test for retention larger than timestamp
        r.execute_command('ts.create', 'large', 'RETENTION', 1000000, 'DUPLICATE_POLICY', 'LAST')
        assert r.execute_command('ts.add', 'large', 100, 0) == 100
        assert r.execute_command('ts.add', 'large', 101, 0) == 101
        assert r.execute_command('ts.add', 'large', 100, 0) == 100