debian-python-pyexcel-io/tests/test_filter.py

79 lines
2.5 KiB
Python

import os
import pyexcel_io.constants as constants
from pyexcel_io import get_data, save_data
from pyexcel_io.utils import _index_filter
from nose.tools import eq_
def test_index_filter():
current_index, start, limit, expected = (0, 1, -1, constants.SKIP_DATA)
eq_(_index_filter(current_index, start, limit), expected)
current_index, start, limit, expected = (2, 1, -1, constants.TAKE_DATA)
eq_(_index_filter(current_index, start, limit), expected)
current_index, start, limit, expected = (2, 1, 10, constants.TAKE_DATA)
eq_(_index_filter(current_index, start, limit), expected)
current_index, start, limit, expected = (
100,
1,
10,
constants.STOP_ITERATION,
)
eq_(_index_filter(current_index, start, limit), expected)
class TestFilter:
def setUp(self):
self.test_file = "test_filter.csv"
sample = [
[1, 21, 31],
[2, 22, 32],
[3, 23, 33],
[4, 24, 34],
[5, 25, 35],
[6, 26, 36],
]
save_data(self.test_file, sample)
def test_filter_row(self):
filtered_data = get_data(self.test_file, start_row=3)
expected = [[4, 24, 34], [5, 25, 35], [6, 26, 36]]
eq_(filtered_data[self.test_file], expected)
def test_filter_row_2(self):
filtered_data = get_data(self.test_file, start_row=3, row_limit=1)
expected = [[4, 24, 34]]
eq_(filtered_data[self.test_file], expected)
def test_filter_column(self):
filtered_data = get_data(self.test_file, start_column=1)
expected = [[21, 31], [22, 32], [23, 33], [24, 34], [25, 35], [26, 36]]
eq_(filtered_data[self.test_file], expected)
def test_filter_column_2(self):
filtered_data = get_data(
self.test_file, start_column=1, column_limit=1
)
expected = [[21], [22], [23], [24], [25], [26]]
eq_(filtered_data[self.test_file], expected)
def test_filter_both_ways(self):
filtered_data = get_data(self.test_file, start_column=1, start_row=3)
expected = [[24, 34], [25, 35], [26, 36]]
eq_(filtered_data[self.test_file], expected)
def test_filter_both_ways_2(self):
filtered_data = get_data(
self.test_file,
start_column=1,
column_limit=1,
start_row=3,
row_limit=1,
)
expected = [[24]]
eq_(filtered_data[self.test_file], expected)
def tearDown(self):
os.unlink(self.test_file)