Skip to content

Commit

Permalink
Discontinue python sdk
Browse files Browse the repository at this point in the history
  • Loading branch information
orlangure committed May 4, 2022
1 parent d3b4cdf commit e6cb897
Show file tree
Hide file tree
Showing 19 changed files with 4 additions and 588 deletions.
17 changes: 0 additions & 17 deletions .github/workflows/test.yaml
Expand Up @@ -78,23 +78,6 @@ jobs:
- name: Test Gnomock connection
run: curl localhost:23042/stop -d '{"id":"42"}'

test-sdk:
name: "[sdk] python"
runs-on: ubuntu-latest
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v1
- name: Install Task
uses: arduino/setup-task@v1
with:
version: '3.0.0'
- name: Generate
run: task generate:sdk:python
- name: Test
run: task test:sdk:python

test-localstack:
name: "[preset] localstack"
runs-on: ubuntu-latest
Expand Down
3 changes: 1 addition & 2 deletions README.md
Expand Up @@ -180,8 +180,7 @@ give Gnomock an advantage:
Preset implementation whenever necessary.
- Gnomock's vision includes **being useful not only in Go** projects, but in
any projects via HTTP. It already supports almost all its features over HTTP
layer, has a clear OpenAPI spec, and even a proof of concept wrapper in
Python.
layer and has a clear OpenAPI spec.
- Gnomock has a friendly **garden gnome mascot**😻

## Troubleshooting
Expand Down
68 changes: 0 additions & 68 deletions Taskfile.yml
Expand Up @@ -28,32 +28,12 @@ tasks:
./internal/cleaner \
./internal/health
#
# SDK release routines
#

release:sdk:python:
cmds:
- task: swagger:update-version
- task: git:clone:python
- task: generate:sdk:python
# - task: test:sdk:python
- task: git:commit:python
- rm -rf ./dist
- deactivate || true
- python3 setup.py sdist bdist_wheel
- python3 -m twine upload dist/*
dir: ./sdktest/python/gnomock

swagger:update-version:
cmds:
- |
sed -Ei '' 's/^ version: (.*)$/ version: {{.version}}/' swagger/swagger.yaml
- |
sed -Ei '' 's/^packageVersion: (.*)$/packageVersion: {{.version}}/' swagger/config/python.yaml
- |
sed -Ei '' 's/apis\/orlangure\/gnomock\/(.*)#/apis\/orlangure\/gnomock\/{{.version}}#/' README.md
- git add README.md swagger/config/python.yaml swagger/swagger.yaml
- git commit -m 'Update version to {{.version}}'
silent: true
dir: .
Expand All @@ -68,54 +48,6 @@ tasks:
- sh: test $release
msg: release flag is not set

git:clone:python:
cmds:
- rm -rf gnomock
- git clone --depth 1 https://github.com/orlangure/gnomock-python-sdk gnomock
dir: ./sdktest/python

generate:sdk:python:
cmds:
- |
docker run --rm -v $PWD:/local \
openapitools/openapi-generator-cli:v4.3.1 generate \
-i /local/swagger/swagger.yaml \
-g python \
-o /local/sdktest/python/gnomock \
-c /local/swagger/config/python.yaml \
--git-user-id orlangure \
--git-repo-id gnomock-python-sdk
silent: true
dir: .

git:commit:python:
cmds:
- rm .travis.yml
- git add .
- git commit -m 'Bump version to {{.version}}'
- git push
dir: ./sdktest/python/gnomock
preconditions:
- sh: test $version
msg: version is not set

test:sdk:python:
cmds:
- task: gnomock:run
- |
{{ if not .CI }}
python3 -m venv venv
source venv/bin/activate
{{ else }}
docker system df
docker system prune -f
docker system df
{{ end }}
pip3 install -r requirements.txt
python3 -m pytest -n 1 -v -k TestSDK
- task: gnomock:stop
dir: ./sdktest/python

gnomock:run:
cmds:
- task: gnomock:stop
Expand Down
34 changes: 0 additions & 34 deletions cmd/generator/main.go
Expand Up @@ -15,8 +15,6 @@ import (

const (
registryPlaceholder = `// new presets go here
`
pytestPlaceholder = `### gnomock-generator
`
startPresetPlaceholder = `### /start/preset
`
Expand Down Expand Up @@ -85,10 +83,6 @@ func generate() error {
return err
}

if err := sdktestPkg(pp); err != nil {
return err
}

if err := swagger(pp); err != nil {
return err
}
Expand Down Expand Up @@ -229,34 +223,6 @@ func registry(params presetParams) error {
return nil
}

// sdktestPkg generates code required for testing the generated SDK. It creates
// a `testdata` folder for a new preset and adds a test stub to `test_sdk.py`.
//
// Test generator is the most basic possible: it will generate wrong names for
// any preset that doesn't have a single word, simple case name like "Redis" or
// "Kubernetes": names like RabbitMQ will break.
func sdktestPkg(params presetParams) error {
testPath := path.Join("sdktest", "python", "test")
dir := path.Join(testPath, "testdata", strings.ToLower(params.Name))

if err := os.MkdirAll(dir, os.ModePerm); err != nil {
return fmt.Errorf("can't create testdata dir: %w", err)
}

pytestFileName := path.Join(testPath, "test_sdk.py")

if err := replacePlaceholder(
pytestFileName,
"cmd/generator/templates/sdktest/python/test/test_sdk.py.template",
pytestPlaceholder,
params,
); err != nil {
return fmt.Errorf("can't generate python tests: %w", err)
}

return nil
}

// swagger generates new definitions in swagger.yaml file. These definitions
// should be extended with options supported by a new preset.
func swagger(params presetParams) error {
Expand Down
20 changes: 0 additions & 20 deletions cmd/generator/templates/sdktest/python/test/test_sdk.py.template

This file was deleted.

16 changes: 3 additions & 13 deletions docs/server.md
Expand Up @@ -88,17 +88,7 @@ $ curl --data @mysql-preset.json http://127.0.0.1:23042/start/mysql
}
```

There are auto-generated wrappers for the available API:

| Client | Sample code |
|--------|-------------|
| [Python SDK](https://github.com/orlangure/gnomock-python-sdk) | [Code](https://github.com/orlangure/gnomock/blob/master/sdktest/python/test/test_sdk.py) |
| JavaScript SDK | |
| Ruby SDK | |
| PHP SDK | |
| Java SDK | |
| [Other](https://openapi-generator.tech/docs/generators) languages | |

**For more details and a full specification, see
[documentation](https://app.swaggerhub.com/apis/orlangure/gnomock/).**
For more details and a full specification, see
[documentation](https://app.swaggerhub.com/apis/orlangure/gnomock/). Use
OpenAPI generator to create API wrappers in the language of your choice.

Empty file removed sdktest/python/__init__.py
Empty file.
19 changes: 0 additions & 19 deletions sdktest/python/requirements.txt

This file was deleted.

11 changes: 0 additions & 11 deletions sdktest/python/run.sh

This file was deleted.

0 comments on commit e6cb897

Please sign in to comment.