Skip to content

Instantly share code, notes, and snippets.

View JayH5's full-sized avatar

Jamie Hewland JayH5

  • Yelp
  • London, UK
View GitHub Profile
@JayH5
JayH5 / allowed_hosts.patch
Last active November 23, 2017 10:28
Django ALLOWED_HOSTS diff
self.static_volume.inner(): "/app/static:ro",
},
- "environment": {"DATABASE_URL": self.db_url}
+ "environment": {
+ "DATABASE_URL": self.db_url,
+ "ALLOWED_HOSTS": "0.0.0.0",
+ },
}
@JayH5
JayH5 / pdb.py
Last active November 23, 2017 09:58
pytest pdb example
[...]
test.py:18: AssertionError
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> entering PDB >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> /Users/jamie/ws/seaworthy-demo/seaworthy/test.py(18)test_admin_page()
-> assert response.status_code == 200
(Pdb) client.get("/admin")
<Response [400]>
(Pdb) client.get("/admin").text
'\n<!DOCTYPE html>\n<html lang="en">\n[...]
<!--a lot of unformatted HTML-->
@JayH5
JayH5 / pytest
Last active November 23, 2017 09:36
pytest backtrace
test.py::test_admin_page FAILED
====================================== FAILURES ======================================
__________________________________ test_admin_page ___________________________________
nginx_container = <fixtures.NginxContainer object at 0x1069b1cf8>
def test_admin_page(nginx_container):
client = nginx_container.http_client()
response = client.get("/admin")
@JayH5
JayH5 / test.py
Last active November 23, 2017 09:07
Django admin page test (failing)
def test_admin_page(nginx_container):
client = nginx_container.http_client()
response = client.get("/admin")
assert response.status_code == 200
assert "text/html" in response.headers["content-type"]
assert "<title>Log in | Django site admin</title>" in response.text
@JayH5
JayH5 / fixtures.py
Last active November 23, 2017 13:31
Django container pytest fixture
# Create definition instances
socket_volume = VolumeDefinition("socket")
static_volume = VolumeDefinition("static")
django_container = DjangoContainer("django", socket_volume, static_volume,
postgresql_container.database_url())
# Create pytest fixtures
socket_volume_fixture = socket_volume.pytest_fixture("socket_volume")
static_volume_fixture = static_volume.pytest_fixture("static_volume")
django_fixture = django_container.pytest_fixture(
@JayH5
JayH5 / fixtures.py
Last active November 23, 2017 08:10
Django container fixture
from seaworthy.definitions import ContainerDefinition
class DjangoContainer(ContainerDefinition):
IMAGE = "seaworthy-demo:django"
WAIT_PATTERNS = (r"Booting worker",)
def __init__(self, name, socket_volume, static_volume, db_url):
super().__init__(name, self.IMAGE, self.WAIT_PATTERNS)
self.socket_volume = socket_volume
self.static_volume = static_volume
@JayH5
JayH5 / .travis.yml
Last active October 30, 2017 14:30
Example Travis deploy
...
before_deploy:
- docker login -u "$REGISTRY_USER" -p "$REGISTRY_PASS"
- pip install docker-ci-deploy==0.3.0
deploy:
provider: script
script: dcd --version "$version" --version-latest "$IMAGE_TAG"
on:
branch: master
@JayH5
JayH5 / .travis.yml
Last active October 30, 2017 14:30
Example Travis deploy section from end of part 2
...
before_deploy:
- docker login -u "$REGISTRY_USER" -p "$REGISTRY_PASS"
- docker tag "$IMAGE_NAME" "${IMAGE_NAME}:latest"
- docker tag "$IMAGE_NAME" "${IMAGE_NAME}:${version}"
deploy:
provider: script
script: docker push "${IMAGE_NAME}:latest" && docker push "${IMAGE_NAME}:${version}"
on:
branch: master
@JayH5
JayH5 / .travis.yml
Last active August 15, 2017 15:15
Example Travis file for Docker repo pattern (2/2)
sudo: required
dist: trusty
python: '3.6'
services:
- docker
env:
- IMAGE_NAME=acme-corp/cake-service
- REGISTRY_USER=acme-bot
# REGISTRY_PASS=...
- secret: "<something long>"
@JayH5
JayH5 / deploy.sh
Last active August 15, 2017 12:22
Example Travis Docker deploy script
#!/usr/bin/env bash
set -e
tag_in="$1"; shift
[ $# -gt 0 ]
for tag_out in "$@"; do docker tag "$tag_in" "$tag_out"; done
for tag_out in "$@"; do docker push "$tag_out"; done