#!/usr/bin/env python3 # -*- coding: utf-8 -*- import requests import time import json BASE_URL = 'http://127.0.0.1:5000' def test_api(): """Testiraj web API""" print("=" * 60) print("Testiranje Web API-ja") print("=" * 60) # Testiranje GET /api/state print("\n1. Test GET /api/state (početno stanje)") try: response = requests.get(f'{BASE_URL}/api/state') data = response.json() print(f" Status: {response.status_code}") print(f" Current text: {data.get('current_text', '')[:50]}...") print(f" Caps mode: {data.get('caps_mode')}") print(" ✓ PASS") except Exception as e: print(f" ✗ FAIL: {e}") # Testiranje POST /api/load_song print("\n2. Test POST /api/load_song (broj 1)") try: response = requests.post( f'{BASE_URL}/api/load_song', json={'song_number': '1'} ) print(f" Status: {response.status_code}") data = response.json() print(f" Response: {data}") # Pričekaj da se pesma naloži time.sleep(0.5) # Provjeri stanje response = requests.get(f'{BASE_URL}/api/state') state = response.json() print(f" Current text: {state.get('current_text', '')[:50]}...") print(f" Can next: {state.get('can_next')}") print(f" Can prev: {state.get('can_prev')}") print(" ✓ PASS") except Exception as e: print(f" ✗ FAIL: {e}") # Testiranje POST /api/next_page print("\n3. Test POST /api/next_page") try: response = requests.post(f'{BASE_URL}/api/next_page') print(f" Status: {response.status_code}") # Provjeri stanje time.sleep(0.3) response = requests.get(f'{BASE_URL}/api/state') state = response.json() print(f" Page info: {state.get('page_info')}") print(" ✓ PASS") except Exception as e: print(f" ✗ FAIL: {e}") # Testiranje POST /api/prev_page print("\n4. Test POST /api/prev_page") try: response = requests.post(f'{BASE_URL}/api/prev_page') print(f" Status: {response.status_code}") # Provjeri stanje time.sleep(0.3) response = requests.get(f'{BASE_URL}/api/state') state = response.json() print(f" Page info: {state.get('page_info')}") print(" ✓ PASS") except Exception as e: print(f" ✗ FAIL: {e}") # Testiranje POST /api/toggle_caps print("\n5. Test POST /api/toggle_caps") try: response = requests.post(f'{BASE_URL}/api/toggle_caps') print(f" Status: {response.status_code}") time.sleep(0.3) response = requests.get(f'{BASE_URL}/api/state') state = response.json() print(f" Caps mode: {state.get('caps_mode')}") print(f" Text (caps): {state.get('current_text', '')[:50]}...") print(" ✓ PASS") except Exception as e: print(f" ✗ FAIL: {e}") # Testiranje POST /api/clear_screen print("\n6. Test POST /api/clear_screen") try: response = requests.post(f'{BASE_URL}/api/clear_screen') print(f" Status: {response.status_code}") time.sleep(0.3) response = requests.get(f'{BASE_URL}/api/state') state = response.json() print(f" Current text: {state.get('current_text', '')[:50]}...") print(" ✓ PASS") except Exception as e: print(f" ✗ FAIL: {e}") # Testiranje POST /api/search_songs print("\n7. Test POST /api/search_songs") try: response = requests.post( f'{BASE_URL}/api/search_songs', json={'query': 'pesem'} ) print(f" Status: {response.status_code}") data = response.json() results = data.get('results', []) print(f" Rezultati: {results}") print(" ✓ PASS") except Exception as e: print(f" ✗ FAIL: {e}") # Testiranje GET / print("\n8. Test GET / (HTML stranicu)") try: response = requests.get(f'{BASE_URL}/') print(f" Status: {response.status_code}") print(f" HTML length: {len(response.text)} bytes") print(f" Contains 'Flask': {'Flask' in response.text}") print(" ✓ PASS") except Exception as e: print(f" ✗ FAIL: {e}") print("\n" + "=" * 60) print("Testiranje završeno!") print("=" * 60) if __name__ == "__main__": test_api()