fix: auto-fix code issues (cron)
- 修复重复导入/字段 - 修复异常处理 - 修复PEP8格式问题 - 添加类型注解 - 修复缺失的urllib.parse导入
This commit is contained in:
@@ -29,6 +29,7 @@ backend_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
if backend_dir not in sys.path:
|
||||
sys.path.insert(0, backend_dir)
|
||||
|
||||
|
||||
class TestDeveloperEcosystem:
|
||||
"""开发者生态系统测试类"""
|
||||
|
||||
@@ -36,23 +37,21 @@ class TestDeveloperEcosystem:
|
||||
self.manager = DeveloperEcosystemManager()
|
||||
self.test_results = []
|
||||
self.created_ids = {
|
||||
'sdk': [],
|
||||
'template': [],
|
||||
'plugin': [],
|
||||
'developer': [],
|
||||
'code_example': [],
|
||||
'portal_config': []
|
||||
"sdk": [],
|
||||
"template": [],
|
||||
"plugin": [],
|
||||
"developer": [],
|
||||
"code_example": [],
|
||||
"portal_config": [],
|
||||
}
|
||||
|
||||
def log(self, message: str, success: bool = True):
|
||||
"""记录测试结果"""
|
||||
status = "✅" if success else "❌"
|
||||
print(f"{status} {message}")
|
||||
self.test_results.append({
|
||||
'message': message,
|
||||
'success': success,
|
||||
'timestamp': datetime.now().isoformat()
|
||||
})
|
||||
self.test_results.append(
|
||||
{"message": message, "success": success, "timestamp": datetime.now().isoformat()}
|
||||
)
|
||||
|
||||
def run_all_tests(self):
|
||||
"""运行所有测试"""
|
||||
@@ -137,9 +136,9 @@ class TestDeveloperEcosystem:
|
||||
dependencies=[{"name": "requests", "version": ">=2.0"}],
|
||||
file_size=1024000,
|
||||
checksum="abc123",
|
||||
created_by="test_user"
|
||||
created_by="test_user",
|
||||
)
|
||||
self.created_ids['sdk'].append(sdk.id)
|
||||
self.created_ids["sdk"].append(sdk.id)
|
||||
self.log(f"Created SDK: {sdk.name} ({sdk.id})")
|
||||
|
||||
# Create JavaScript SDK
|
||||
@@ -157,9 +156,9 @@ class TestDeveloperEcosystem:
|
||||
dependencies=[{"name": "axios", "version": ">=0.21"}],
|
||||
file_size=512000,
|
||||
checksum="def456",
|
||||
created_by="test_user"
|
||||
created_by="test_user",
|
||||
)
|
||||
self.created_ids['sdk'].append(sdk_js.id)
|
||||
self.created_ids["sdk"].append(sdk_js.id)
|
||||
self.log(f"Created SDK: {sdk_js.name} ({sdk_js.id})")
|
||||
|
||||
except Exception as e:
|
||||
@@ -185,8 +184,8 @@ class TestDeveloperEcosystem:
|
||||
def test_sdk_get(self):
|
||||
"""测试获取 SDK 详情"""
|
||||
try:
|
||||
if self.created_ids['sdk']:
|
||||
sdk = self.manager.get_sdk_release(self.created_ids['sdk'][0])
|
||||
if self.created_ids["sdk"]:
|
||||
sdk = self.manager.get_sdk_release(self.created_ids["sdk"][0])
|
||||
if sdk:
|
||||
self.log(f"Retrieved SDK: {sdk.name}")
|
||||
else:
|
||||
@@ -197,10 +196,9 @@ class TestDeveloperEcosystem:
|
||||
def test_sdk_update(self):
|
||||
"""测试更新 SDK"""
|
||||
try:
|
||||
if self.created_ids['sdk']:
|
||||
if self.created_ids["sdk"]:
|
||||
sdk = self.manager.update_sdk_release(
|
||||
self.created_ids['sdk'][0],
|
||||
description="Updated description"
|
||||
self.created_ids["sdk"][0], description="Updated description"
|
||||
)
|
||||
if sdk:
|
||||
self.log(f"Updated SDK: {sdk.name}")
|
||||
@@ -210,8 +208,8 @@ class TestDeveloperEcosystem:
|
||||
def test_sdk_publish(self):
|
||||
"""测试发布 SDK"""
|
||||
try:
|
||||
if self.created_ids['sdk']:
|
||||
sdk = self.manager.publish_sdk_release(self.created_ids['sdk'][0])
|
||||
if self.created_ids["sdk"]:
|
||||
sdk = self.manager.publish_sdk_release(self.created_ids["sdk"][0])
|
||||
if sdk:
|
||||
self.log(f"Published SDK: {sdk.name} (status: {sdk.status.value})")
|
||||
except Exception as e:
|
||||
@@ -220,15 +218,15 @@ class TestDeveloperEcosystem:
|
||||
def test_sdk_version_add(self):
|
||||
"""测试添加 SDK 版本"""
|
||||
try:
|
||||
if self.created_ids['sdk']:
|
||||
if self.created_ids["sdk"]:
|
||||
version = self.manager.add_sdk_version(
|
||||
sdk_id=self.created_ids['sdk'][0],
|
||||
sdk_id=self.created_ids["sdk"][0],
|
||||
version="1.1.0",
|
||||
is_lts=True,
|
||||
release_notes="Bug fixes and improvements",
|
||||
download_url="https://pypi.org/insightflow/1.1.0",
|
||||
checksum="xyz789",
|
||||
file_size=1100000
|
||||
file_size=1100000,
|
||||
)
|
||||
self.log(f"Added SDK version: {version.version}")
|
||||
except Exception as e:
|
||||
@@ -254,9 +252,9 @@ class TestDeveloperEcosystem:
|
||||
version="1.0.0",
|
||||
min_platform_version="2.0.0",
|
||||
file_size=5242880,
|
||||
checksum="tpl123"
|
||||
checksum="tpl123",
|
||||
)
|
||||
self.created_ids['template'].append(template.id)
|
||||
self.created_ids["template"].append(template.id)
|
||||
self.log(f"Created template: {template.name} ({template.id})")
|
||||
|
||||
# Create free template
|
||||
@@ -269,9 +267,9 @@ class TestDeveloperEcosystem:
|
||||
author_id="dev_002",
|
||||
author_name="InsightFlow Team",
|
||||
price=0.0,
|
||||
currency="CNY"
|
||||
currency="CNY",
|
||||
)
|
||||
self.created_ids['template'].append(template_free.id)
|
||||
self.created_ids["template"].append(template_free.id)
|
||||
self.log(f"Created free template: {template_free.name}")
|
||||
|
||||
except Exception as e:
|
||||
@@ -297,8 +295,8 @@ class TestDeveloperEcosystem:
|
||||
def test_template_get(self):
|
||||
"""测试获取模板详情"""
|
||||
try:
|
||||
if self.created_ids['template']:
|
||||
template = self.manager.get_template(self.created_ids['template'][0])
|
||||
if self.created_ids["template"]:
|
||||
template = self.manager.get_template(self.created_ids["template"][0])
|
||||
if template:
|
||||
self.log(f"Retrieved template: {template.name}")
|
||||
except Exception as e:
|
||||
@@ -307,10 +305,9 @@ class TestDeveloperEcosystem:
|
||||
def test_template_approve(self):
|
||||
"""测试审核通过模板"""
|
||||
try:
|
||||
if self.created_ids['template']:
|
||||
if self.created_ids["template"]:
|
||||
template = self.manager.approve_template(
|
||||
self.created_ids['template'][0],
|
||||
reviewed_by="admin_001"
|
||||
self.created_ids["template"][0], reviewed_by="admin_001"
|
||||
)
|
||||
if template:
|
||||
self.log(f"Approved template: {template.name}")
|
||||
@@ -320,8 +317,8 @@ class TestDeveloperEcosystem:
|
||||
def test_template_publish(self):
|
||||
"""测试发布模板"""
|
||||
try:
|
||||
if self.created_ids['template']:
|
||||
template = self.manager.publish_template(self.created_ids['template'][0])
|
||||
if self.created_ids["template"]:
|
||||
template = self.manager.publish_template(self.created_ids["template"][0])
|
||||
if template:
|
||||
self.log(f"Published template: {template.name}")
|
||||
except Exception as e:
|
||||
@@ -330,14 +327,14 @@ class TestDeveloperEcosystem:
|
||||
def test_template_review(self):
|
||||
"""测试添加模板评价"""
|
||||
try:
|
||||
if self.created_ids['template']:
|
||||
if self.created_ids["template"]:
|
||||
review = self.manager.add_template_review(
|
||||
template_id=self.created_ids['template'][0],
|
||||
template_id=self.created_ids["template"][0],
|
||||
user_id="user_001",
|
||||
user_name="Test User",
|
||||
rating=5,
|
||||
comment="Great template! Very accurate for medical entities.",
|
||||
is_verified_purchase=True
|
||||
is_verified_purchase=True,
|
||||
)
|
||||
self.log(f"Added template review: {review.rating} stars")
|
||||
except Exception as e:
|
||||
@@ -366,9 +363,9 @@ class TestDeveloperEcosystem:
|
||||
version="1.0.0",
|
||||
min_platform_version="2.0.0",
|
||||
file_size=1048576,
|
||||
checksum="plg123"
|
||||
checksum="plg123",
|
||||
)
|
||||
self.created_ids['plugin'].append(plugin.id)
|
||||
self.created_ids["plugin"].append(plugin.id)
|
||||
self.log(f"Created plugin: {plugin.name} ({plugin.id})")
|
||||
|
||||
# Create free plugin
|
||||
@@ -381,9 +378,9 @@ class TestDeveloperEcosystem:
|
||||
author_name="Data Team",
|
||||
price=0.0,
|
||||
currency="CNY",
|
||||
pricing_model="free"
|
||||
pricing_model="free",
|
||||
)
|
||||
self.created_ids['plugin'].append(plugin_free.id)
|
||||
self.created_ids["plugin"].append(plugin_free.id)
|
||||
self.log(f"Created free plugin: {plugin_free.name}")
|
||||
|
||||
except Exception as e:
|
||||
@@ -405,8 +402,8 @@ class TestDeveloperEcosystem:
|
||||
def test_plugin_get(self):
|
||||
"""测试获取插件详情"""
|
||||
try:
|
||||
if self.created_ids['plugin']:
|
||||
plugin = self.manager.get_plugin(self.created_ids['plugin'][0])
|
||||
if self.created_ids["plugin"]:
|
||||
plugin = self.manager.get_plugin(self.created_ids["plugin"][0])
|
||||
if plugin:
|
||||
self.log(f"Retrieved plugin: {plugin.name}")
|
||||
except Exception as e:
|
||||
@@ -415,12 +412,12 @@ class TestDeveloperEcosystem:
|
||||
def test_plugin_review(self):
|
||||
"""测试审核插件"""
|
||||
try:
|
||||
if self.created_ids['plugin']:
|
||||
if self.created_ids["plugin"]:
|
||||
plugin = self.manager.review_plugin(
|
||||
self.created_ids['plugin'][0],
|
||||
self.created_ids["plugin"][0],
|
||||
reviewed_by="admin_001",
|
||||
status=PluginStatus.APPROVED,
|
||||
notes="Code review passed"
|
||||
notes="Code review passed",
|
||||
)
|
||||
if plugin:
|
||||
self.log(f"Reviewed plugin: {plugin.name} ({plugin.status.value})")
|
||||
@@ -430,8 +427,8 @@ class TestDeveloperEcosystem:
|
||||
def test_plugin_publish(self):
|
||||
"""测试发布插件"""
|
||||
try:
|
||||
if self.created_ids['plugin']:
|
||||
plugin = self.manager.publish_plugin(self.created_ids['plugin'][0])
|
||||
if self.created_ids["plugin"]:
|
||||
plugin = self.manager.publish_plugin(self.created_ids["plugin"][0])
|
||||
if plugin:
|
||||
self.log(f"Published plugin: {plugin.name}")
|
||||
except Exception as e:
|
||||
@@ -440,14 +437,14 @@ class TestDeveloperEcosystem:
|
||||
def test_plugin_review_add(self):
|
||||
"""测试添加插件评价"""
|
||||
try:
|
||||
if self.created_ids['plugin']:
|
||||
if self.created_ids["plugin"]:
|
||||
review = self.manager.add_plugin_review(
|
||||
plugin_id=self.created_ids['plugin'][0],
|
||||
plugin_id=self.created_ids["plugin"][0],
|
||||
user_id="user_002",
|
||||
user_name="Plugin User",
|
||||
rating=4,
|
||||
comment="Works great with Feishu!",
|
||||
is_verified_purchase=True
|
||||
is_verified_purchase=True,
|
||||
)
|
||||
self.log(f"Added plugin review: {review.rating} stars")
|
||||
except Exception as e:
|
||||
@@ -466,9 +463,9 @@ class TestDeveloperEcosystem:
|
||||
bio="专注于医疗AI和自然语言处理",
|
||||
website="https://zhangsan.dev",
|
||||
github_url="https://github.com/zhangsan",
|
||||
avatar_url="https://cdn.example.com/avatars/zhangsan.png"
|
||||
avatar_url="https://cdn.example.com/avatars/zhangsan.png",
|
||||
)
|
||||
self.created_ids['developer'].append(profile.id)
|
||||
self.created_ids["developer"].append(profile.id)
|
||||
self.log(f"Created developer profile: {profile.display_name} ({profile.id})")
|
||||
|
||||
# Create another developer
|
||||
@@ -476,9 +473,9 @@ class TestDeveloperEcosystem:
|
||||
user_id=f"user_dev_{unique_id}_002",
|
||||
display_name="李四",
|
||||
email=f"lisi_{unique_id}@example.com",
|
||||
bio="全栈开发者,热爱开源"
|
||||
bio="全栈开发者,热爱开源",
|
||||
)
|
||||
self.created_ids['developer'].append(profile2.id)
|
||||
self.created_ids["developer"].append(profile2.id)
|
||||
self.log(f"Created developer profile: {profile2.display_name}")
|
||||
|
||||
except Exception as e:
|
||||
@@ -487,8 +484,8 @@ class TestDeveloperEcosystem:
|
||||
def test_developer_profile_get(self):
|
||||
"""测试获取开发者档案"""
|
||||
try:
|
||||
if self.created_ids['developer']:
|
||||
profile = self.manager.get_developer_profile(self.created_ids['developer'][0])
|
||||
if self.created_ids["developer"]:
|
||||
profile = self.manager.get_developer_profile(self.created_ids["developer"][0])
|
||||
if profile:
|
||||
self.log(f"Retrieved developer profile: {profile.display_name}")
|
||||
except Exception as e:
|
||||
@@ -497,10 +494,9 @@ class TestDeveloperEcosystem:
|
||||
def test_developer_verify(self):
|
||||
"""测试验证开发者"""
|
||||
try:
|
||||
if self.created_ids['developer']:
|
||||
if self.created_ids["developer"]:
|
||||
profile = self.manager.verify_developer(
|
||||
self.created_ids['developer'][0],
|
||||
DeveloperStatus.VERIFIED
|
||||
self.created_ids["developer"][0], DeveloperStatus.VERIFIED
|
||||
)
|
||||
if profile:
|
||||
self.log(f"Verified developer: {profile.display_name} ({profile.status.value})")
|
||||
@@ -510,10 +506,12 @@ class TestDeveloperEcosystem:
|
||||
def test_developer_stats_update(self):
|
||||
"""测试更新开发者统计"""
|
||||
try:
|
||||
if self.created_ids['developer']:
|
||||
self.manager.update_developer_stats(self.created_ids['developer'][0])
|
||||
profile = self.manager.get_developer_profile(self.created_ids['developer'][0])
|
||||
self.log(f"Updated developer stats: {profile.plugin_count} plugins, {profile.template_count} templates")
|
||||
if self.created_ids["developer"]:
|
||||
self.manager.update_developer_stats(self.created_ids["developer"][0])
|
||||
profile = self.manager.get_developer_profile(self.created_ids["developer"][0])
|
||||
self.log(
|
||||
f"Updated developer stats: {profile.plugin_count} plugins, {profile.template_count} templates"
|
||||
)
|
||||
except Exception as e:
|
||||
self.log(f"Failed to update developer stats: {str(e)}", success=False)
|
||||
|
||||
@@ -535,9 +533,9 @@ print(f"Created project: {project.id}")
|
||||
tags=["python", "quickstart", "projects"],
|
||||
author_id="dev_001",
|
||||
author_name="InsightFlow Team",
|
||||
api_endpoints=["/api/v1/projects"]
|
||||
api_endpoints=["/api/v1/projects"],
|
||||
)
|
||||
self.created_ids['code_example'].append(example.id)
|
||||
self.created_ids["code_example"].append(example.id)
|
||||
self.log(f"Created code example: {example.title}")
|
||||
|
||||
# Create JavaScript example
|
||||
@@ -558,9 +556,9 @@ console.log('Upload complete:', result.id);
|
||||
explanation="使用 JavaScript SDK 上传文件到 InsightFlow",
|
||||
tags=["javascript", "upload", "audio"],
|
||||
author_id="dev_002",
|
||||
author_name="JS Team"
|
||||
author_name="JS Team",
|
||||
)
|
||||
self.created_ids['code_example'].append(example_js.id)
|
||||
self.created_ids["code_example"].append(example_js.id)
|
||||
self.log(f"Created code example: {example_js.title}")
|
||||
|
||||
except Exception as e:
|
||||
@@ -582,10 +580,12 @@ console.log('Upload complete:', result.id);
|
||||
def test_code_example_get(self):
|
||||
"""测试获取代码示例详情"""
|
||||
try:
|
||||
if self.created_ids['code_example']:
|
||||
example = self.manager.get_code_example(self.created_ids['code_example'][0])
|
||||
if self.created_ids["code_example"]:
|
||||
example = self.manager.get_code_example(self.created_ids["code_example"][0])
|
||||
if example:
|
||||
self.log(f"Retrieved code example: {example.title} (views: {example.view_count})")
|
||||
self.log(
|
||||
f"Retrieved code example: {example.title} (views: {example.view_count})"
|
||||
)
|
||||
except Exception as e:
|
||||
self.log(f"Failed to get code example: {str(e)}", success=False)
|
||||
|
||||
@@ -602,9 +602,9 @@ console.log('Upload complete:', result.id);
|
||||
support_url="https://support.insightflow.io",
|
||||
github_url="https://github.com/insightflow",
|
||||
discord_url="https://discord.gg/insightflow",
|
||||
api_base_url="https://api.insightflow.io/v1"
|
||||
api_base_url="https://api.insightflow.io/v1",
|
||||
)
|
||||
self.created_ids['portal_config'].append(config.id)
|
||||
self.created_ids["portal_config"].append(config.id)
|
||||
self.log(f"Created portal config: {config.name}")
|
||||
|
||||
except Exception as e:
|
||||
@@ -613,8 +613,8 @@ console.log('Upload complete:', result.id);
|
||||
def test_portal_config_get(self):
|
||||
"""测试获取开发者门户配置"""
|
||||
try:
|
||||
if self.created_ids['portal_config']:
|
||||
config = self.manager.get_portal_config(self.created_ids['portal_config'][0])
|
||||
if self.created_ids["portal_config"]:
|
||||
config = self.manager.get_portal_config(self.created_ids["portal_config"][0])
|
||||
if config:
|
||||
self.log(f"Retrieved portal config: {config.name}")
|
||||
|
||||
@@ -629,16 +629,16 @@ console.log('Upload complete:', result.id);
|
||||
def test_revenue_record(self):
|
||||
"""测试记录开发者收益"""
|
||||
try:
|
||||
if self.created_ids['developer'] and self.created_ids['plugin']:
|
||||
if self.created_ids["developer"] and self.created_ids["plugin"]:
|
||||
revenue = self.manager.record_revenue(
|
||||
developer_id=self.created_ids['developer'][0],
|
||||
developer_id=self.created_ids["developer"][0],
|
||||
item_type="plugin",
|
||||
item_id=self.created_ids['plugin'][0],
|
||||
item_id=self.created_ids["plugin"][0],
|
||||
item_name="飞书机器人集成插件",
|
||||
sale_amount=49.0,
|
||||
currency="CNY",
|
||||
buyer_id="user_buyer_001",
|
||||
transaction_id="txn_123456"
|
||||
transaction_id="txn_123456",
|
||||
)
|
||||
self.log(f"Recorded revenue: {revenue.sale_amount} {revenue.currency}")
|
||||
self.log(f" - Platform fee: {revenue.platform_fee}")
|
||||
@@ -649,8 +649,10 @@ console.log('Upload complete:', result.id);
|
||||
def test_revenue_summary(self):
|
||||
"""测试获取开发者收益汇总"""
|
||||
try:
|
||||
if self.created_ids['developer']:
|
||||
summary = self.manager.get_developer_revenue_summary(self.created_ids['developer'][0])
|
||||
if self.created_ids["developer"]:
|
||||
summary = self.manager.get_developer_revenue_summary(
|
||||
self.created_ids["developer"][0]
|
||||
)
|
||||
self.log("Revenue summary for developer:")
|
||||
self.log(f" - Total sales: {summary['total_sales']}")
|
||||
self.log(f" - Total fees: {summary['total_fees']}")
|
||||
@@ -666,7 +668,7 @@ console.log('Upload complete:', result.id);
|
||||
print("=" * 60)
|
||||
|
||||
total = len(self.test_results)
|
||||
passed = sum(1 for r in self.test_results if r['success'])
|
||||
passed = sum(1 for r in self.test_results if r["success"])
|
||||
failed = total - passed
|
||||
|
||||
print(f"Total tests: {total}")
|
||||
@@ -676,7 +678,7 @@ console.log('Upload complete:', result.id);
|
||||
if failed > 0:
|
||||
print("\nFailed tests:")
|
||||
for r in self.test_results:
|
||||
if not r['success']:
|
||||
if not r["success"]:
|
||||
print(f" - {r['message']}")
|
||||
|
||||
print("\nCreated resources:")
|
||||
@@ -686,10 +688,12 @@ console.log('Upload complete:', result.id);
|
||||
|
||||
print("=" * 60)
|
||||
|
||||
|
||||
def main():
|
||||
"""主函数"""
|
||||
test = TestDeveloperEcosystem()
|
||||
test.run_all_tests()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
Reference in New Issue
Block a user