import io
from PIL import Image
from docx import Document
from openpyxl import load_workbook
import fitz
from app.pipeline import export_docx,export_xlsx,make_pdf,draw_tables_on_pdf

def test_table_exports():
    im=Image.new('RGB',(700,900),'white')
    t={'rows':2,'cols':2,'cells':[{'row':0,'col':0,'rowspan':1,'colspan':2,'text':'Total','kind':'columnHeader','box':[.1,.1,.9,.15]}, {'row':1,'col':0,'rowspan':1,'colspan':1,'text':'Prix','kind':'content','box':[.1,.15,.5,.2]},{'row':1,'col':1,'rowspan':1,'colspan':1,'text':'1 200,00','kind':'content','box':[.5,.15,.9,.2]}]}
    meta={'table_data':[t]}
    x=load_workbook(io.BytesIO(export_xlsx([meta])))
    assert x['P1_Table1']['B2'].value=='1 200,00'
    assert 'A1:B1' in [str(r) for r in x['P1_Table1'].merged_cells.ranges]
    d=Document(io.BytesIO(export_docx([im],[[]],[meta])))
    assert d.tables[0].cell(1,1).text=='1 200,00'
    pdf=draw_tables_on_pdf(make_pdf([im],[[]],'rebuild'),[im],[meta],'rebuild')
    assert '1 200,00' in fitz.open(stream=pdf,filetype='pdf')[0].get_text()
