Auto-sync from website-creator
This commit is contained in:
738
TESTING_GUIDE.md
Normal file
738
TESTING_GUIDE.md
Normal file
@@ -0,0 +1,738 @@
|
||||
# 🧪 SEO Skills - Complete Testing Guide
|
||||
|
||||
**Purpose:** Test all implemented features systematically
|
||||
**Estimated Time:** 2-3 hours for full test suite
|
||||
**Prerequisites:** Python 3.8+, pip packages installed
|
||||
|
||||
---
|
||||
|
||||
## 📋 TEST OVERVIEW
|
||||
|
||||
| Test Group | Features | Priority | Time |
|
||||
|------------|----------|----------|------|
|
||||
| **Group 1:** Content Generation | Multi-channel generation | High | 30 min |
|
||||
| **Group 2:** Thai Analysis | Keyword, readability, quality | High | 20 min |
|
||||
| **Group 3:** Context Management | Create, manage context | Medium | 15 min |
|
||||
| **Group 4:** Image Integration | Generate, edit images | Medium | 30 min |
|
||||
| **Group 5:** Auto-Publish | Astro publishing | Medium | 20 min |
|
||||
| **Group 6:** Analytics | GA4, GSC, DataForSEO, Umami | Low | 30 min |
|
||||
|
||||
---
|
||||
|
||||
## 🔧 PRE-TEST SETUP
|
||||
|
||||
### **1. Install Dependencies**
|
||||
|
||||
```bash
|
||||
# Navigate to skills directory
|
||||
cd /Users/kunthawatgreethong/Gitea/opencode-skill/skills
|
||||
|
||||
# Install all dependencies
|
||||
pip install pythainlp pyyaml python-dotenv pandas tqdm rich \
|
||||
markdown python-frontmatter GitPython Pillow requests
|
||||
|
||||
# Install Google APIs (for analytics testing)
|
||||
pip install google-analytics-data google-auth google-auth-oauthlib \
|
||||
google-api-python-client
|
||||
|
||||
# Download Thai language data
|
||||
python3 -c "from pythainlp.corpus import download; download('default')"
|
||||
```
|
||||
|
||||
### **2. Verify Installation**
|
||||
|
||||
```bash
|
||||
# Test PyThaiNLP
|
||||
python3 -c "from pythainlp import word_tokenize; print(word_tokenize('ทดสอบภาษาไทย'))"
|
||||
# Expected: ['ทดสอบ', 'ภาษาไทย']
|
||||
|
||||
# Test YAML
|
||||
python3 -c "import yaml; print('YAML OK')"
|
||||
|
||||
# Test requests
|
||||
python3 -c "import requests; print('Requests OK')"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📝 GROUP 1: Content Generation Tests
|
||||
|
||||
### **Test 1.1: Facebook Post Generation**
|
||||
|
||||
```bash
|
||||
cd /Users/kunthawatgreethong/Gitea/opencode-skill/skills/seo-multi-channel/scripts
|
||||
|
||||
python3 generate_content.py \
|
||||
--topic "บริการ podcast hosting" \
|
||||
--channels facebook \
|
||||
--language th \
|
||||
--output test-fb
|
||||
```
|
||||
|
||||
**Expected Output:**
|
||||
```
|
||||
🎯 Generating content for: บริการ podcast hosting
|
||||
📱 Channels: facebook
|
||||
🌐 Language: th
|
||||
|
||||
Generating facebook...
|
||||
[Image Generation] Would generate image for facebook
|
||||
Topic: บริการ podcast hosting, Type: social
|
||||
... (5 times)
|
||||
|
||||
✅ Results saved to: output/บริการ-podcast-hosting/results.json
|
||||
|
||||
📊 Summary:
|
||||
Channels generated: 1
|
||||
- facebook: 5 variations
|
||||
```
|
||||
|
||||
**Verify:**
|
||||
- [ ] Output file created at `output/test-fb/results.json`
|
||||
- [ ] Contains 5 Facebook variations
|
||||
- [ ] Each has: primary_text, headline, cta, hashtags
|
||||
|
||||
---
|
||||
|
||||
### **Test 1.2: Multi-Channel Generation**
|
||||
|
||||
```bash
|
||||
python3 generate_content.py \
|
||||
--topic "บริการ podcast hosting" \
|
||||
--channels facebook google_ads blog \
|
||||
--language th
|
||||
```
|
||||
|
||||
**Expected Output:**
|
||||
```
|
||||
🎯 Generating content for: บริการ podcast hosting
|
||||
📱 Channels: facebook, google_ads, blog
|
||||
🌐 Language: th
|
||||
|
||||
Generating facebook... (5 variations)
|
||||
Generating google_ads... (3 variations)
|
||||
Generating blog... (5 variations)
|
||||
|
||||
✅ Results saved to: output/บริการ-podcast-hosting/results.json
|
||||
|
||||
📊 Summary:
|
||||
Channels generated: 3
|
||||
- facebook: 5 variations
|
||||
- google_ads: 3 variations
|
||||
- blog: 5 variations
|
||||
```
|
||||
|
||||
**Verify:**
|
||||
- [ ] All 3 channels generated
|
||||
- [ ] Total 13 variations
|
||||
- [ ] Blog has markdown with frontmatter
|
||||
- [ ] Google Ads has 15 headlines, 4 descriptions
|
||||
|
||||
---
|
||||
|
||||
### **Test 1.3: English Content**
|
||||
|
||||
```bash
|
||||
python3 generate_content.py \
|
||||
--topic "best podcast hosting 2026" \
|
||||
--channels facebook blog \
|
||||
--language en
|
||||
```
|
||||
|
||||
**Verify:**
|
||||
- [ ] English content generated
|
||||
- [ ] Different tone/formality than Thai
|
||||
- [ ] Proper English grammar structure
|
||||
|
||||
---
|
||||
|
||||
## 📝 GROUP 2: Thai Analysis Tests
|
||||
|
||||
### **Test 2.1: Keyword Density Analysis**
|
||||
|
||||
```bash
|
||||
cd /Users/kunthawatgreethong/Gitea/opencode-skill/skills/seo-analyzers/scripts
|
||||
|
||||
python3 thai_keyword_analyzer.py \
|
||||
--text "บริการ podcast hosting ที่ดีที่สุดช่วยให้คุณเผยแพร่ podcast ไปยัง Apple Podcasts, Spotify, YouTube Music ได้อย่างง่ายดาย บริการ podcast ของเราเป็นเครื่องมือที่ครบวงจรที่สุด" \
|
||||
--keyword "บริการ podcast" \
|
||||
--language th \
|
||||
--output text
|
||||
```
|
||||
|
||||
**Expected Output:**
|
||||
```
|
||||
📊 Keyword Analysis Results
|
||||
|
||||
Keyword: บริการ podcast
|
||||
Word Count: 25
|
||||
Occurrences: 3
|
||||
Density: 12.0% (target: 1.0-1.5%)
|
||||
Status: too_high
|
||||
|
||||
Critical Placements:
|
||||
✓ First 100 words: Yes
|
||||
✓ H1 Headline: No
|
||||
✓ Conclusion: No
|
||||
✓ H2 Headings: 0 found
|
||||
|
||||
Keyword Stuffing Risk: high
|
||||
|
||||
💡 Recommendations:
|
||||
• ลดการใช้คำหลักลง อาจถูกมองว่า keyword stuffing
|
||||
• เพิ่มคำหลักในหัวข้อหลัก (H1)
|
||||
• เพิ่มคำหลักในบทสรุป
|
||||
```
|
||||
|
||||
**Verify:**
|
||||
- [ ] Thai word count accurate (uses PyThaiNLP)
|
||||
- [ ] Density calculated correctly
|
||||
- [ ] Recommendations in Thai
|
||||
|
||||
---
|
||||
|
||||
### **Test 2.2: Readability Analysis**
|
||||
|
||||
```bash
|
||||
python3 thai_readability.py \
|
||||
--text "มาเริ่ม podcast กันเลย! ไม่ต้องรอให้พร้อม 100% แค่มีไอเดียดีๆ กับไมค์หนึ่งอัน คุณก็เริ่มต้นได้แล้ว ส่วนเรื่องเทคนิคที่เหลือ เราช่วยคุณเอง" \
|
||||
--output text
|
||||
```
|
||||
|
||||
**Expected Output:**
|
||||
```
|
||||
📖 Thai Readability Analysis
|
||||
|
||||
Sentence Count: 3
|
||||
Word Count: 28
|
||||
Avg Sentence Length: 9.3 words
|
||||
|
||||
Grade Level: ง่าย (ม.6-ม.9)
|
||||
Formality: กันเอง (Casual)
|
||||
|
||||
Readability Score: 75/100
|
||||
```
|
||||
|
||||
**Verify:**
|
||||
- [ ] Thai sentences counted correctly
|
||||
- [ ] Formality detected (กันเอง vs เป็นทางการ)
|
||||
- [ ] Grade level in Thai format
|
||||
|
||||
---
|
||||
|
||||
### **Test 2.3: Content Quality Scoring**
|
||||
|
||||
```bash
|
||||
python3 content_quality_scorer.py \
|
||||
--text "# คู่มือ Podcast Hosting
|
||||
|
||||
บริการ podcast hosting เป็นสิ่งสำคัญสำหรับ podcaster ทุกคน...
|
||||
|
||||
[Add 500+ words of content]" \
|
||||
--keyword "podcast hosting" \
|
||||
--output text
|
||||
```
|
||||
|
||||
**Expected Output:**
|
||||
```
|
||||
⭐ Content Quality Score
|
||||
|
||||
Overall Score: 65.0/100
|
||||
Status: fair
|
||||
Action: Address priority fixes
|
||||
|
||||
Category Scores:
|
||||
• Keyword Optimization: 15/25
|
||||
• Readability: 18/25
|
||||
• Structure: 17/25
|
||||
• Brand Voice: 15/25
|
||||
```
|
||||
|
||||
**Verify:**
|
||||
- [ ] Score between 0-100
|
||||
- [ ] 4 category breakdowns
|
||||
- [ ] Recommendations provided
|
||||
|
||||
---
|
||||
|
||||
## 📝 GROUP 3: Context Management Tests
|
||||
|
||||
### **Test 3.1: Create Context Files**
|
||||
|
||||
```bash
|
||||
cd /Users/kunthawatgreethong/Gitea/opencode-skill/skills/seo-context/scripts
|
||||
|
||||
python3 context_manager.py \
|
||||
--create \
|
||||
--project "/tmp/test-website" \
|
||||
--industry "podcast" \
|
||||
--formality "normal"
|
||||
```
|
||||
|
||||
**Expected Output:**
|
||||
```
|
||||
📝 Context Manager
|
||||
Project: /tmp/test-website
|
||||
|
||||
Creating context files...
|
||||
Industry: podcast
|
||||
Audience: Thai audience
|
||||
Formality: normal
|
||||
|
||||
✅ Context created successfully!
|
||||
|
||||
📁 Created files:
|
||||
✓ brand-voice.md
|
||||
✓ target-keywords.md
|
||||
✓ seo-guidelines.md
|
||||
✓ internal-links-map.md
|
||||
✓ data-services.json
|
||||
✓ style-guide.md
|
||||
|
||||
📍 Location: /tmp/test-website/context
|
||||
```
|
||||
|
||||
**Verify:**
|
||||
- [ ] All 6 files created in `/tmp/test-website/context/`
|
||||
- [ ] brand-voice.md has Thai voice pillars
|
||||
- [ ] seo-guidelines.md has Thai-specific rules
|
||||
- [ ] data-services.json has all services disabled
|
||||
|
||||
```bash
|
||||
# Verify files
|
||||
ls -la /tmp/test-website/context/
|
||||
cat /tmp/test-website/context/brand-voice.md | head -20
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### **Test 3.2: Alternative --action Flag**
|
||||
|
||||
```bash
|
||||
python3 context_manager.py \
|
||||
--action create \
|
||||
--project "/tmp/test-website-2" \
|
||||
--industry "ecommerce" \
|
||||
--formality "casual"
|
||||
```
|
||||
|
||||
**Verify:**
|
||||
- [ ] Works with `--action create` instead of `--create`
|
||||
- [ ] Different industry reflected in content
|
||||
|
||||
---
|
||||
|
||||
## 📝 GROUP 4: Image Integration Tests
|
||||
|
||||
### **Test 4.1: Image Generation (Requires CHUTES_API_TOKEN)**
|
||||
|
||||
```bash
|
||||
cd /Users/kunthawatgreethong/Gitea/opencode-skill/skills/seo-multi-channel/scripts
|
||||
|
||||
# Set your API token
|
||||
export CHUTES_API_TOKEN="your_token_here"
|
||||
|
||||
python3 image_integration.py \
|
||||
--action generate \
|
||||
--topic "podcast hosting" \
|
||||
--channel facebook \
|
||||
--output-dir ./test-images
|
||||
```
|
||||
|
||||
**Expected Output:**
|
||||
```
|
||||
🎨 Generating image...
|
||||
Prompt: Professional illustration of podcast hosting...
|
||||
Size: 1024x1024
|
||||
✓ Saved: ./test-images/podcast-hosting/facebook/generated_xxx.png
|
||||
```
|
||||
|
||||
**Verify:**
|
||||
- [ ] Image file created
|
||||
- [ ] Saved in correct folder structure
|
||||
- [ ] Image is viewable (not corrupted)
|
||||
|
||||
**Note:** If no API token, test will show prompt about needing token
|
||||
|
||||
---
|
||||
|
||||
### **Test 4.2: Find Product Images**
|
||||
|
||||
```bash
|
||||
# First, create a test website structure
|
||||
mkdir -p /tmp/test-website/public/images/products
|
||||
cp /path/to/any-image.jpg /tmp/test-website/public/images/products/podcast-mic.jpg
|
||||
|
||||
python3 image_integration.py \
|
||||
--action find \
|
||||
--product-name "podcast-mic" \
|
||||
--website-repo "/tmp/test-website"
|
||||
```
|
||||
|
||||
**Expected Output:**
|
||||
```
|
||||
🔍 Looking for product images: podcast-mic
|
||||
✓ Found 1 image(s)
|
||||
- /tmp/test-website/public/images/products/podcast-mic.jpg
|
||||
```
|
||||
|
||||
**Verify:**
|
||||
- [ ] Finds images in website repo
|
||||
- [ ] Searches multiple directories
|
||||
- [ ] Returns full paths
|
||||
|
||||
---
|
||||
|
||||
### **Test 4.3: Product Image Edit (Requires CHUTES_API_TOKEN)**
|
||||
|
||||
```bash
|
||||
export CHUTES_API_TOKEN="your_token_here"
|
||||
|
||||
python3 image_integration.py \
|
||||
--action edit \
|
||||
--product-name "podcast-mic" \
|
||||
--website-repo "/tmp/test-website" \
|
||||
--prompt "Enhance product, professional lighting, clean background" \
|
||||
--topic "podcast-mic" \
|
||||
--channel facebook_ads \
|
||||
--output-dir ./test-images
|
||||
```
|
||||
|
||||
**Expected Output:**
|
||||
```
|
||||
✏️ Editing product image...
|
||||
Base: /tmp/test-website/public/images/products/podcast-mic.jpg
|
||||
Edit: Enhance product, professional lighting...
|
||||
✓ Saved: ./test-images/podcast-mic/facebook_ads/edited_xxx.png
|
||||
```
|
||||
|
||||
**Verify:**
|
||||
- [ ] Original image found
|
||||
- [ ] Edited image created
|
||||
- [ ] Saved in channel-specific folder
|
||||
|
||||
---
|
||||
|
||||
## 📝 GROUP 5: Auto-Publish Tests
|
||||
|
||||
### **Test 5.1: Publish Blog Post**
|
||||
|
||||
```bash
|
||||
cd /Users/kunthawatgreethong/Gitea/opencode-skill/skills/seo-multi-channel/scripts
|
||||
|
||||
# Create test blog post
|
||||
cat > /tmp/test-blog.md << 'EOF'
|
||||
---
|
||||
title: "คู่มือ Podcast Hosting ที่ดีที่สุด 2026"
|
||||
description: "เปรียบเทียบบริการ podcast hosting ทั้งหมด"
|
||||
keywords: ["podcast hosting", "บริการ podcast"]
|
||||
slug: podcast-hosting-best-2026
|
||||
lang: th
|
||||
category: guides
|
||||
created: 2026-03-08
|
||||
---
|
||||
|
||||
# คู่มือ Podcast Hosting ที่ดีที่สุด 2026
|
||||
|
||||
บทความนี้จะเปรียบเทียบแพลตฟอร์มยอดนิยม...
|
||||
EOF
|
||||
|
||||
# Initialize test git repo
|
||||
mkdir -p /tmp/test-astro-website/src/content/blog/\(th\)
|
||||
cd /tmp/test-astro-website
|
||||
git init
|
||||
git config user.email "test@test.com"
|
||||
git config user.name "Test User"
|
||||
git remote add origin https://github.com/yourusername/test-repo.git
|
||||
|
||||
# Publish
|
||||
python3 auto_publish.py \
|
||||
--file /tmp/test-blog.md \
|
||||
--website-repo /tmp/test-astro-website
|
||||
```
|
||||
|
||||
**Expected Output:**
|
||||
```
|
||||
📝 Publishing to Astro
|
||||
|
||||
✓ Saved: /tmp/test-astro-website/src/content/blog/(th)/podcast-hosting-best-2026.md
|
||||
✓ Committed: Add blog post: podcast-hosting-best-2026 (th)
|
||||
✓ Pushed to remote
|
||||
|
||||
✅ Published successfully!
|
||||
Slug: podcast-hosting-best-2026
|
||||
Language: th
|
||||
Path: /tmp/test-astro-website/src/content/blog/(th)/podcast-hosting-best-2026.md
|
||||
```
|
||||
|
||||
**Verify:**
|
||||
- [ ] Markdown file saved in correct language folder
|
||||
- [ ] Git commit created
|
||||
- [ ] Slug generated correctly from Thai title
|
||||
|
||||
---
|
||||
|
||||
### **Test 5.2: English Blog Post**
|
||||
|
||||
```bash
|
||||
cat > /tmp/test-blog-en.md << 'EOF'
|
||||
---
|
||||
title: "Best Podcast Hosting 2026"
|
||||
description: "Compare all podcast hosting services"
|
||||
slug: best-podcast-hosting-2026
|
||||
lang: en
|
||||
---
|
||||
|
||||
# Best Podcast Hosting 2026
|
||||
|
||||
This article compares...
|
||||
EOF
|
||||
|
||||
python3 auto_publish.py \
|
||||
--file /tmp/test-blog-en.md \
|
||||
--website-repo /tmp/test-astro-website
|
||||
```
|
||||
|
||||
**Verify:**
|
||||
- [ ] Saved in `(en)` folder
|
||||
- [ ] Language auto-detected if not specified
|
||||
|
||||
---
|
||||
|
||||
## 📝 GROUP 6: Analytics Tests (Optional - Needs Credentials)
|
||||
|
||||
### **Test 6.1: Data Aggregator (No Services)**
|
||||
|
||||
```bash
|
||||
cd /Users/kunthawatgreethong/Gitea/opencode-skill/skills/seo-data/scripts
|
||||
|
||||
# Create empty config
|
||||
cat > /tmp/test-context/data-services.json << 'EOF'
|
||||
{
|
||||
"ga4": {"enabled": false},
|
||||
"gsc": {"enabled": false},
|
||||
"dataforseo": {"enabled": false},
|
||||
"umami": {"enabled": false}
|
||||
}
|
||||
EOF
|
||||
|
||||
python3 data_aggregator.py \
|
||||
--context /tmp/test-context \
|
||||
--action performance \
|
||||
--url "https://test.com/page"
|
||||
```
|
||||
|
||||
**Expected Output:**
|
||||
```
|
||||
📊 Initializing Data Service Manager...
|
||||
Context: /tmp/test-context
|
||||
|
||||
No analytics services configured. All features will be skipped.
|
||||
|
||||
⚠️ No services configured. Exiting.
|
||||
```
|
||||
|
||||
**Verify:**
|
||||
- [ ] Gracefully handles no services
|
||||
- [ ] No errors thrown
|
||||
|
||||
---
|
||||
|
||||
### **Test 6.2: GA4 Connector (With Credentials)**
|
||||
|
||||
```bash
|
||||
# Only if you have GA4 credentials
|
||||
python3 ga4_connector.py \
|
||||
--property-id "G-XXXXXXXXXX" \
|
||||
--credentials "/path/to/ga4-credentials.json" \
|
||||
--url "/blog/article" \
|
||||
--days 30
|
||||
```
|
||||
|
||||
**Verify (if credentials provided):**
|
||||
- [ ] Connects successfully
|
||||
- [ ] Returns pageview data
|
||||
- [ ] Returns engagement metrics
|
||||
|
||||
---
|
||||
|
||||
### **Test 6.3: GSC Connector (With Credentials)**
|
||||
|
||||
```bash
|
||||
# Only if you have GSC credentials
|
||||
python3 gsc_connector.py \
|
||||
--site-url "https://yoursite.com" \
|
||||
--credentials "/path/to/gsc-credentials.json" \
|
||||
--quick-wins
|
||||
```
|
||||
|
||||
**Expected Output:**
|
||||
```
|
||||
🔍 Testing GSC Connector
|
||||
Site: https://yoursite.com
|
||||
|
||||
Finding quick wins (position 11-20)...
|
||||
|
||||
Found 15 opportunities:
|
||||
|
||||
1. keyword example
|
||||
Position: 12 | Impressions: 1,234 | Priority: 85
|
||||
```
|
||||
|
||||
**Verify (if credentials provided):**
|
||||
- [ ] Connects successfully
|
||||
- [ ] Returns keyword positions
|
||||
- [ ] Quick wins calculated correctly
|
||||
|
||||
---
|
||||
|
||||
### **Test 6.4: DataForSEO (With Credentials)**
|
||||
|
||||
```bash
|
||||
python3 dataforseo_client.py \
|
||||
--login "your_login" \
|
||||
--password "your_password" \
|
||||
--keyword "podcast hosting"
|
||||
```
|
||||
|
||||
**Verify (if credentials provided):**
|
||||
- [ ] Authenticates successfully
|
||||
- [ ] Returns SERP data
|
||||
|
||||
---
|
||||
|
||||
### **Test 6.5: Umami (With Credentials)**
|
||||
|
||||
```bash
|
||||
python3 umami_connector.py \
|
||||
--api-url "https://analytics.yoursite.com" \
|
||||
--api-key "your_api_key" \
|
||||
--website-id "your_website_id"
|
||||
```
|
||||
|
||||
**Verify (if credentials provided):**
|
||||
- [ ] Connects successfully
|
||||
- [ ] Returns analytics data
|
||||
|
||||
---
|
||||
|
||||
## ✅ TEST CHECKLIST SUMMARY
|
||||
|
||||
### **High Priority (Must Test):**
|
||||
|
||||
- [ ] **Test 1.1:** Facebook post generation (Thai)
|
||||
- [ ] **Test 1.2:** Multi-channel generation
|
||||
- [ ] **Test 2.1:** Thai keyword density analysis
|
||||
- [ ] **Test 2.2:** Thai readability analysis
|
||||
- [ ] **Test 2.3:** Content quality scoring
|
||||
- [ ] **Test 3.1:** Context file creation
|
||||
|
||||
### **Medium Priority (Should Test):**
|
||||
|
||||
- [ ] **Test 4.1:** Image generation (if have token)
|
||||
- [ ] **Test 4.2:** Find product images
|
||||
- [ ] **Test 5.1:** Auto-publish blog post
|
||||
- [ ] **Test 1.3:** English content generation
|
||||
|
||||
### **Low Priority (If Have Credentials):**
|
||||
|
||||
- [ ] **Test 6.2:** GA4 connector
|
||||
- [ ] **Test 6.3:** GSC connector
|
||||
- [ ] **Test 6.4:** DataForSEO client
|
||||
- [ ] **Test 6.5:** Umami connector
|
||||
|
||||
---
|
||||
|
||||
## 🐛 COMMON ISSUES & FIXES
|
||||
|
||||
### **Issue 1: PyThaiNLP Not Working**
|
||||
|
||||
**Error:** `ImportError: No module named 'pythainlp'`
|
||||
|
||||
**Fix:**
|
||||
```bash
|
||||
pip install pythainlp
|
||||
python3 -c "from pythainlp.corpus import download; download('default')"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### **Issue 2: YAML Parser Errors**
|
||||
|
||||
**Error:** `yaml.parser.ParserError`
|
||||
|
||||
**Fix:** Templates already fixed. If using custom templates, ensure:
|
||||
- No unquoted special characters
|
||||
- Proper indentation (2 spaces)
|
||||
- No `or` in values (use quotes)
|
||||
|
||||
---
|
||||
|
||||
### **Issue 3: Image Generation Fails**
|
||||
|
||||
**Error:** `CHUTES_API_TOKEN not set`
|
||||
|
||||
**Fix:** Either set token or skip image tests (core functionality still works)
|
||||
|
||||
```bash
|
||||
export CHUTES_API_TOKEN="your_token"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### **Issue 4: Git Push Fails**
|
||||
|
||||
**Error:** `git push` authentication failed
|
||||
|
||||
**Fix:** For testing, skip remote push:
|
||||
```bash
|
||||
# Just test local commit
|
||||
git commit -m "Test commit"
|
||||
# Don't push
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📊 TEST RESULTS TEMPLATE
|
||||
|
||||
After testing, fill in this template:
|
||||
|
||||
```markdown
|
||||
## Test Results - [Date]
|
||||
|
||||
**Tester:** [Your name]
|
||||
**Environment:** [Python version, OS]
|
||||
|
||||
### Group 1: Content Generation
|
||||
- [ ] Test 1.1: Facebook (Thai) - PASS/FAIL
|
||||
- [ ] Test 1.2: Multi-channel - PASS/FAIL
|
||||
- [ ] Test 1.3: English - PASS/FAIL
|
||||
|
||||
### Group 2: Thai Analysis
|
||||
- [ ] Test 2.1: Keyword density - PASS/FAIL
|
||||
- [ ] Test 2.2: Readability - PASS/FAIL
|
||||
- [ ] Test 2.3: Quality score - PASS/FAIL
|
||||
|
||||
### Group 3: Context
|
||||
- [ ] Test 3.1: Create context - PASS/FAIL
|
||||
|
||||
### Group 4: Images
|
||||
- [ ] Test 4.1: Generate - PASS/FAIL/SKIP
|
||||
- [ ] Test 4.2: Find products - PASS/FAIL
|
||||
|
||||
### Group 5: Auto-Publish
|
||||
- [ ] Test 5.1: Publish blog - PASS/FAIL
|
||||
|
||||
### Group 6: Analytics
|
||||
- [ ] Test 6.x: [Service] - PASS/FAIL/SKIP (no creds)
|
||||
|
||||
### Bugs Found:
|
||||
1. [Description]
|
||||
2. [Description]
|
||||
|
||||
### Overall Status: [Ready/Needs Fixes]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**Happy Testing!** 🧪🎉
|
||||
Reference in New Issue
Block a user