Skip to content

Instantly share code, notes, and snippets.

@paulgoetze
paulgoetze / user.json
Last active April 29, 2022 10:32
Testing Your Python API App with JSON Schema - tests/support/schemas/user.json
// tests/support/schemas/user.json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "User response schema",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
@paulgoetze
paulgoetze / plain_text.rb
Last active May 13, 2020 18:28
Plain text in Ruby
class PlainText
class << self
def write(&block)
return unless block_given?
@previous_line = current_line
@line = []
@paragraph = []
undefine_methods
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
hifi: Ember.inject.service(),
actions: {
play() {
const url = "https://stream.wqxr.org/wqxr";
const mimeType = 'audio/mpeg';
@paulgoetze
paulgoetze / cities.ex
Last active August 18, 2019 19:22
Compiling an extensive cities list from free geonames.org data
# This module provides a function to compile city data using the free data
# provided on http://download.geonames.org/export/dump.
# It uses following files to compile a list of 4.4 mio. cities world-wide,
# including their name, state (administrative level 1), country, time zone,
# latitude, and longitude:
#
# * allCountries.txt (included in allCountries.zip)
# * countryInfo.txt
# * admin1CodesASCII.txt
#
@paulgoetze
paulgoetze / test_get_user.py
Last active February 19, 2019 05:54
Testing Your Python API App with JSON Schema - test_get_user()
def test_get_user(client):
# Do whatever is necessary to create a user here…
response = client.get('/users/1')
json_data = json.loads(response.data)
assert 'data' in json_data
assert 'type' in json_data['data']
assert 'id' in json_data['data']
assert 'attributes' in json_data['data']
@paulgoetze
paulgoetze / codeship-elixir.sh
Last active July 30, 2018 03:33
Codeship Elixir/Phoenix test setup
#!/bin/bash
# Erlang
ERLANG_VERSION=${ERLANG_VERSION:-20.2}
ERLANG_CACHED_DOWNLOAD="${HOME}/cache/OTP-${ERLANG_VERSION}.tar.gz"
ERLANG_DIR=${ERLANG_DIR:="$HOME/erlang"}
# Elixir
ELIXIR_VERSION=${ELIXIR_VERSION:-1.6.3}
ELIXIR_CACHED_DOWNLOAD="${HOME}/cache/elixir-v${ELIXIR_VERSION}.zip"
@paulgoetze
paulgoetze / test_users.py
Last active May 30, 2017 16:46
Testing Your Python API App with JSON Schema - tests/test_users.py
# tests/test_users.py
import json
from .support.assertions import assert_valid_schema
def test_get_user(client):
# Do whatever is necessary to create a user here…
response = client.get('/users/1')
@paulgoetze
paulgoetze / user.json
Last active May 30, 2017 16:45
Testing Your Python API App with JSON Schema - GET /users/:id response
{
"data": {
"type": "users",
"id": 1,
"attributes": {
"email": "paul@grammofy.com",
"username": "paul"
}
}
}
@paulgoetze
paulgoetze / assertions.py
Last active May 30, 2017 16:44
Testing Your Python API App with JSON Schema - tests/support/assertions.py
# tests/support/assertions.py
import json
from os.path import join, dirname
from jsonschema import validate
def assert_valid_schema(data, schema_file):
""" Checks whether the given data matches the schema """
@paulgoetze
paulgoetze / assert_valid_schema.py
Last active May 30, 2017 16:43
Testing Your Python API App with JSON Schema - assert_valid_schema
assert_valid_schema(json_data, 'user.json')