54 lines
1.4 KiB
Python
54 lines
1.4 KiB
Python
import tempfile
|
|
import os
|
|
from openpyxl import Workbook
|
|
from openpyxl.styles import PatternFill
|
|
|
|
from detect_filled_cells import detect_colored_cells
|
|
|
|
|
|
def create_sample_workbook(path):
|
|
wb = Workbook()
|
|
ws = wb.active
|
|
ws.title = 'Sheet1'
|
|
|
|
# A1: solid green with full ARGB
|
|
ws['A1'].fill = PatternFill(start_color='FF00B050', end_color='FF00B050', fill_type='solid')
|
|
ws['A1'].value = 'block'
|
|
|
|
# B2: solid blue with 6-digit rgb (should be treated as FF+rgb)
|
|
ws['B2'].fill = PatternFill(start_color='00B0F0', end_color='00B0F0', fill_type='solid')
|
|
ws['B2'].value = 'water'
|
|
|
|
# C3: no fill
|
|
ws['C3'].value = 'empty'
|
|
|
|
wb.save(path)
|
|
|
|
|
|
def run_test():
|
|
tf = tempfile.NamedTemporaryFile(delete=False, suffix='.xlsx')
|
|
tf.close()
|
|
try:
|
|
create_sample_workbook(tf.name)
|
|
print(f"Saved sample workbook to: {tf.name}")
|
|
|
|
results = detect_colored_cells(tf.name, sheet_name='Sheet1')
|
|
print('Detected colored cells:')
|
|
for r in results:
|
|
print(r)
|
|
|
|
assert any(r['coordinate'] == 'A1' for r in results), 'A1 should be detected'
|
|
assert any(r['coordinate'] == 'B2' for r in results), 'B2 should be detected'
|
|
assert all(r['coordinate'] != 'C3' for r in results), 'C3 should not be detected'
|
|
|
|
print('\nTest passed')
|
|
finally:
|
|
try:
|
|
os.unlink(tf.name)
|
|
except Exception:
|
|
pass
|
|
|
|
|
|
if __name__ == '__main__':
|
|
run_test()
|