Source code for openpyxl.chart.tests.test_reference

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

import pytest

from openpyxl.compat import unicode
from openpyxl.xml.functions import fromstring, tostring
from openpyxl.tests.helper import compare_xml

@pytest.fixture
[docs]def Reference(): from ..reference import Reference return Reference
@pytest.fixture
[docs]def Worksheet(): class DummyWorksheet: def __init__(self, title="dummy"): self.title = title return DummyWorksheet
[docs]class TestReference:
[docs] def test_ctor(self, Reference, Worksheet): ref = Reference( worksheet=Worksheet(), min_col=1, min_row=1, max_col=10, max_row=12 ) assert str(ref) == "dummy!$A$1:$J$12"
[docs] def test_single_cell(self, Reference, Worksheet): ref = Reference(Worksheet(), min_col=1, min_row=1) assert str(ref) == "dummy!$A$1"
[docs] def test_from_string(self, Reference): ref = Reference(range_string="Sheet1!$A$1:$A$10") assert (ref.min_col, ref.min_row, ref.max_col, ref.max_row) == (1,1, 1,10) assert str(ref) == "Sheet1!$A$1:$A$10"
[docs] def test_cols(self, Reference): ref = Reference(range_string="Sheet!A1:B2") assert list(ref.cols) == [ ('A1', 'A2'), ('B1', 'B2') ]
[docs] def test_rows(self, Reference): ref = Reference(range_string="Sheet!A1:B2") assert list(ref.rows) == [ ('A1', 'B1'), ('A2', 'B2') ]
@pytest.mark.parametrize("range_string, cells", [ ("Sheet!A1:A5", ['A1', 'A2', 'A3', 'A4', 'A5']), ("Sheet!A1:E1", ['A1', 'B1', 'C1', 'D1', 'E1']), ] )
[docs] def test_cells(self, Reference, range_string, cells): ref = Reference(range_string=range_string) assert list(ref.cells) == cells
@pytest.mark.parametrize("range_string, cell, min_col, min_row", [ ("Sheet1!A1:A10", 'A1', 1, 2), ("Sheet!A1:E1", 'A1', 2, 1), ] )
[docs] def test_pop(self, Reference, range_string, cell, min_col, min_row): ref = Reference(range_string=range_string) assert cell == ref.pop() assert (ref.min_col, ref.min_row) == (min_col, min_row)
@pytest.mark.parametrize("range_string, length", [ ("Sheet1!A1:A10", 10), ("Sheet!A1:E1", 5), ] )
[docs] def test_length(self, Reference, range_string, length): ref = Reference(range_string=range_string) assert len(ref) == length
[docs] def test_repr(self, Reference): ref = Reference(range_string=b'D\xc3\xbcsseldorf!A1:A10'.decode("utf8")) assert unicode(ref) == b'D\xc3\xbcsseldorf!$A$1:$A$10'.decode("utf8")