Source code for openpyxl.utils.tests.test_cell

from __future__ import absolute_import
# Copyright (c) 2010-2017 openpyxl

import pytest

from .. import (
    column_index_from_string,
    coordinate_from_string,
    get_column_letter,
    absolute_coordinate,
    get_column_interval,
)


[docs]def test_coordinates(): assert coordinate_from_string('ZF46') == ("ZF", 46)
@pytest.mark.parametrize("value", ['AAA', "AQ0"])
[docs]def test_invalid_coordinate(value): from ..exceptions import CellCoordinatesException with pytest.raises(CellCoordinatesException): coordinate_from_string(value)
@pytest.mark.parametrize("coord, result", [ ("ZF51",'$ZF$51',), ('ZF51:ZF53', '$ZF$51:$ZF$53'), ("A:G", "$A:$G"), ("A", "$A"), ("1", "$1"), ] )
[docs]def test_absolute(coord, result): assert absolute_coordinate(coord) == result
[docs]def test_column_interval(): expected = ['A', 'B', 'C', 'D'] assert get_column_interval('A', 'D') == expected assert get_column_interval('A', 4) == expected
@pytest.mark.parametrize("column, idx", [ ('j', 10), ('Jj', 270), ('JJj', 7030), ('A', 1), ('Z', 26), ('AA', 27), ('AZ', 52), ('BA', 53), ('BZ', 78), ('ZA', 677), ('ZZ', 702), ('AAA', 703), ('AAZ', 728), ('ABC', 731), ('AZA', 1353), ('ZZA', 18253), ('ZZZ', 18278), ] )
[docs]def test_column_index(column, idx): assert column_index_from_string(column) == idx
@pytest.mark.parametrize("column", ('JJJJ', '', '$', '1',) )
[docs]def test_bad_column_index(column): with pytest.raises(ValueError): column_index_from_string(column)
@pytest.mark.parametrize("value", (0, 18729))
[docs]def test_column_letter_boundries(value): with pytest.raises(ValueError): get_column_letter(value)
@pytest.mark.parametrize("value, expected", [ (18278, "ZZZ"), (7030, "JJJ"), (28, "AB"), (27, "AA"), (26, "Z") ] )
[docs]def test_column_letter(value, expected): assert get_column_letter(value) == expected
[docs]def test_coordinate_tuple(): from .. import coordinate_to_tuple assert coordinate_to_tuple("D15") == (15, 4)
@pytest.mark.parametrize("range_string, sheetname, boundaries", [ ("Sheet1!$A$1:$A$12", "Sheet1", (1,1, 1,12)), ("'My Sheet'!A1:E6", "My Sheet", (1,1, 5,6)), ] )
[docs]def test_range_to_tuple(range_string, sheetname, boundaries): from .. import range_to_tuple assert range_to_tuple(range_string) == (sheetname, boundaries)
[docs]def test_invalid_range(): from .. import range_to_tuple with pytest.raises(ValueError): range_to_tuple("A1:E5")
@pytest.mark.parametrize("title, quoted", [ (u'In D\xfcsseldorf', u"'In D\xfcsseldorf'"), (u'My-Sheet', u"'My-Sheet'"), (u"Demande d'autorisation", "'Demande d''autorisation'"), (u"d'autorisation", "'d''autorisation'"), ] )
[docs]def test_quote_sheetname(title, quoted): from .. import quote_sheetname assert quote_sheetname(title) == quoted
[docs]def test_rows_from_range(): from .. import rows_from_range cells = rows_from_range("A1:D4") cells = [list(row) for row in cells] assert cells == [ ['A1', 'B1', 'C1', 'D1'], ['A2', 'B2', 'C2', 'D2'], ['A3', 'B3', 'C3', 'D3'], ['A4', 'B4', 'C4', 'D4'], ]
[docs]def test_cols_from_range(): from .. import cols_from_range cells = cols_from_range("A1:D4") cells = [list(row) for row in cells] assert cells == [ ['A1', 'A2', 'A3', 'A4'], ['B1', 'B2', 'B3', 'B4'], ['C1', 'C2', 'C3', 'C4'], ['D1', 'D2', 'D3', 'D4'], ]
@pytest.mark.parametrize('range_string, coords', [ ('C1:C4', (3, 1, 3, 4)), ('C1', (3, 1, 3, 1)), ('D:F', (4, None, 6, None)), ('A', (1, None, 1, None)), ('1:10',(None, 1, None, 10)), ('1', (None, 1, None, 1)), ])
[docs]def test_bounds(range_string, coords): from ..cell import range_boundaries assert range_boundaries(range_string) == coords
[docs]def test_invalid_bounds(): from ..cell import range_boundaries with pytest.raises(ValueError): r = range_boundaries(":-1")