mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-06-02 20:14:36 +00:00
55 lines
2.1 KiB
Python
55 lines
2.1 KiB
Python
"""Unit tests for plugin connector static methods.
|
|
|
|
Tests cover:
|
|
- _parse_plugin_id() parsing and validation
|
|
"""
|
|
from __future__ import annotations
|
|
|
|
import pytest
|
|
from importlib import import_module
|
|
|
|
|
|
def get_connector_module():
|
|
"""Lazy import to avoid circular import issues."""
|
|
return import_module('langbot.pkg.plugin.connector')
|
|
|
|
|
|
class TestParsePluginId:
|
|
"""Tests for _parse_plugin_id static method."""
|
|
|
|
def test_valid_plugin_id_simple(self):
|
|
"""Test parsing valid plugin ID with simple format."""
|
|
connector = get_connector_module()
|
|
author, name = connector.PluginRuntimeConnector._parse_plugin_id('langbot/rag-engine')
|
|
assert author == 'langbot'
|
|
assert name == 'rag-engine'
|
|
|
|
def test_invalid_plugin_id_no_slash(self):
|
|
"""Test that ValueError is raised when no slash present."""
|
|
connector = get_connector_module()
|
|
with pytest.raises(ValueError) as exc_info:
|
|
connector.PluginRuntimeConnector._parse_plugin_id('invalid-plugin-id')
|
|
assert 'Invalid plugin_id format' in str(exc_info.value)
|
|
assert 'invalid-plugin-id' in str(exc_info.value)
|
|
|
|
def test_invalid_plugin_id_empty_string(self):
|
|
"""Test that ValueError is raised for empty string."""
|
|
connector = get_connector_module()
|
|
with pytest.raises(ValueError) as exc_info:
|
|
connector.PluginRuntimeConnector._parse_plugin_id('')
|
|
assert 'Invalid plugin_id format' in str(exc_info.value)
|
|
|
|
def test_valid_plugin_id_single_character_parts(self):
|
|
"""Test parsing plugin ID with single character author and name."""
|
|
connector = get_connector_module()
|
|
author, name = connector.PluginRuntimeConnector._parse_plugin_id('a/b')
|
|
assert author == 'a'
|
|
assert name == 'b'
|
|
|
|
def test_valid_plugin_id_with_hyphens_and_underscores(self):
|
|
"""Test parsing plugin ID with hyphens and underscores."""
|
|
connector = get_connector_module()
|
|
author, name = connector.PluginRuntimeConnector._parse_plugin_id('lang-bot/my_rag_engine')
|
|
assert author == 'lang-bot'
|
|
assert name == 'my_rag_engine'
|