文件预览

test_worksheet.py

查看 Origin Pro MCP 技能包中的文件内容。

文件内容

tests/test_worksheet.py

import json

import pytest

from origin_pro_mcp.origin_connection import get_origin
from origin_pro_mcp.tools.worksheet import import_csv_to_worksheet, list_worksheets

pytestmark = pytest.mark.origin

def setup_function():
    o = get_origin()
    o.Execute("doc -s; doc -n;")

def test_create_worksheet():
    o = get_origin()
    name = o.CreatePage(2, "TestWks", "origin")
    assert name == "TestWks"

def test_put_and_get_data():
    o = get_origin()
    o.CreatePage(2, "DataTest", "origin")
    o.PutWorksheet("[DataTest]Sheet1", [1.0, 2.0, 3.0], 0, 0)
    o.PutWorksheet("[DataTest]Sheet1", [4.0, 5.0, 6.0], 0, 1)
    data = o.GetWorksheet("[DataTest]Sheet1")
    assert data == ((1.0, 4.0), (2.0, 5.0), (3.0, 6.0))

def test_find_worksheet():
    o = get_origin()
    o.CreatePage(2, "ColTest", "origin")
    wks = o.FindWorksheet("[ColTest]Sheet1")
    assert wks is not None

def test_import_csv_respects_book_name(tmp_path):
    csv_path = tmp_path / "sample.csv"
    csv_path.write_text("Bias,Dark,Light\n0,0.02,0.11\n1,0.08,0.42\n", encoding="utf-8")

    result = import_csv_to_worksheet(str(csv_path), book_name="CsvBook", delimiter=",")
    assert result == "Imported to workbook: CsvBook"

    o = get_origin()
    assert o.GetWorksheet("[CsvBook]Sheet1") == ((0.0, 0.02, 0.11), (1.0, 0.08, 0.42))
    pages = json.loads(list_worksheets())
    assert {"book": "CsvBook", "type": "workbook"} in pages
    assert not [page for page in pages if page["type"] == "graph"]