From d908f5c0db0299ba1babd997a137ab50c8bc056e Mon Sep 17 00:00:00 2001 From: 7000pctAUTO Date: Fri, 30 Jan 2026 12:39:27 +0000 Subject: [PATCH] Initial commit: Add curl-to-code-cli project --- .tests/test_generators.py | 149 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 .tests/test_generators.py diff --git a/.tests/test_generators.py b/.tests/test_generators.py new file mode 100644 index 0000000..13c4278 --- /dev/null +++ b/.tests/test_generators.py @@ -0,0 +1,149 @@ +import pytest +from curl_to_code.parser import parse_curl_command +from curl_to_code.generators import ( + generate_python, + generate_javascript, + generate_go, + generate_rust, + generate_php, +) + + +class TestPythonGenerator: + def test_simple_get_request(self): + curl_cmd = "curl https://api.example.com/users" + parsed = parse_curl_command(curl_cmd) + code = generate_python(parsed) + + assert "import requests" in code + assert "https://api.example.com/users" in code + assert "requests.get" in code or "requests." in code + + def test_post_with_json(self): + curl_cmd = """curl -X POST -H "Content-Type: application/json" -d '{"name":"test"}' https://api.example.com/users""" + parsed = parse_curl_command(curl_cmd) + code = generate_python(parsed) + + assert "json=" in code or "json_data" in code + assert 'HTTPBasicAuth' in code or "auth" in code + + def test_request_with_auth(self): + curl_cmd = "curl -u user:password https://api.example.com" + parsed = parse_curl_command(curl_cmd) + code = generate_python(parsed) + + assert "HTTPBasicAuth" in code + assert "user" in code + assert "password" in code + + def test_request_with_headers(self): + curl_cmd = 'curl -H "Accept: application/json" https://api.example.com' + parsed = parse_curl_command(curl_cmd) + code = generate_python(parsed) + + assert "headers" in code + assert "Accept" in code + + +class TestJavaScriptGenerator: + def test_simple_get_request(self): + curl_cmd = "curl https://api.example.com/users" + parsed = parse_curl_command(curl_cmd) + code = generate_javascript(parsed) + + assert "async function" in code or "await fetch" in code + assert "https://api.example.com/users" in code + + def test_post_with_json(self): + curl_cmd = """curl -X POST -H "Content-Type: application/json" -d '{"name":"test"}' https://api.example.com/users""" + parsed = parse_curl_command(curl_cmd) + code = generate_javascript(parsed) + + assert "JSON.stringify" in code + assert "response.json()" in code + + def test_request_with_headers(self): + curl_cmd = 'curl -H "Authorization: Bearer token123" https://api.example.com' + parsed = parse_curl_command(curl_cmd) + code = generate_javascript(parsed) + + assert "headers" in code or "Authorization" in code + + +class TestGoGenerator: + def test_simple_get_request(self): + curl_cmd = "curl https://api.example.com/users" + parsed = parse_curl_command(curl_cmd) + code = generate_go(parsed) + + assert "package main" in code + assert "net/http" in code + assert "https://api.example.com/users" in code + assert "http.NewRequest" in code + + def test_post_with_json(self): + curl_cmd = """curl -X POST -d '{"name":"test"}' https://api.example.com/users""" + parsed = parse_curl_command(curl_cmd) + code = generate_go(parsed) + + assert "bytes.NewBuffer" in code or "json" in code + + +class TestRustGenerator: + def test_simple_get_request(self): + curl_cmd = "curl https://api.example.com/users" + parsed = parse_curl_command(curl_cmd) + code = generate_rust(parsed) + + assert "reqwest" in code + assert "tokio::main" in code or "#[tokio::main]" in code + assert "https://api.example.com/users" in code + + def test_request_with_headers(self): + curl_cmd = 'curl -H "Accept: application/json" https://api.example.com' + parsed = parse_curl_command(curl_cmd) + code = generate_rust(parsed) + + assert "HashMap" in code or "headers" in code + + +class TestPHPGenerator: + def test_simple_get_request(self): + curl_cmd = "curl https://api.example.com/users" + parsed = parse_curl_command(curl_cmd) + code = generate_php(parsed) + + assert "curl_init" in code + assert "https://api.example.com/users" in code + assert "curl_exec" in code + + def test_request_with_auth(self): + curl_cmd = "curl -u user:pass https://api.example.com" + parsed = parse_curl_command(curl_cmd) + code = generate_php(parsed) + + assert "CURLOPT_USERPWD" in code + assert "user" in code + assert "pass" in code + + +class TestAllGenerators: + def test_all_languages_produce_output(self): + curl_cmd = "curl https://api.example.com/users" + parsed = parse_curl_command(curl_cmd) + + assert len(generate_python(parsed)) > 0 + assert len(generate_javascript(parsed)) > 0 + assert len(generate_go(parsed)) > 0 + assert len(generate_rust(parsed)) > 0 + assert len(generate_php(parsed)) > 0 + + def test_complex_curl_all_languages(self): + curl_cmd = '''curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer token123" -d '{"name":"test","value":1}' https://api.example.com/users''' + parsed = parse_curl_command(curl_cmd) + + assert len(generate_python(parsed)) > 0 + assert len(generate_javascript(parsed)) > 0 + assert len(generate_go(parsed)) > 0 + assert len(generate_rust(parsed)) > 0 + assert len(generate_php(parsed)) > 0