43 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
import io
 | 
						|
 | 
						|
import pytest
 | 
						|
 | 
						|
import pandas as pd
 | 
						|
from pandas.tests.extension.base.base import BaseExtensionTests
 | 
						|
 | 
						|
 | 
						|
class BasePrintingTests(BaseExtensionTests):
 | 
						|
    """Tests checking the formatting of your EA when printed."""
 | 
						|
 | 
						|
    @pytest.mark.parametrize("size", ["big", "small"])
 | 
						|
    def test_array_repr(self, data, size):
 | 
						|
        if size == "small":
 | 
						|
            data = data[:5]
 | 
						|
        else:
 | 
						|
            data = type(data)._concat_same_type([data] * 5)
 | 
						|
 | 
						|
        result = repr(data)
 | 
						|
        assert type(data).__name__ in result
 | 
						|
        assert f"Length: {len(data)}" in result
 | 
						|
        assert str(data.dtype) in result
 | 
						|
        if size == "big":
 | 
						|
            assert "..." in result
 | 
						|
 | 
						|
    def test_array_repr_unicode(self, data):
 | 
						|
        result = str(data)
 | 
						|
        assert isinstance(result, str)
 | 
						|
 | 
						|
    def test_series_repr(self, data):
 | 
						|
        ser = pd.Series(data)
 | 
						|
        assert data.dtype.name in repr(ser)
 | 
						|
 | 
						|
    def test_dataframe_repr(self, data):
 | 
						|
        df = pd.DataFrame({"A": data})
 | 
						|
        repr(df)
 | 
						|
 | 
						|
    def test_dtype_name_in_info(self, data):
 | 
						|
        buf = io.StringIO()
 | 
						|
        pd.DataFrame({"A": data}).info(buf=buf)
 | 
						|
        result = buf.getvalue()
 | 
						|
        assert data.dtype.name in result
 |