Skip to content

Commit

Permalink
Merge pull request #18 from lorien/bottle
Browse files Browse the repository at this point in the history
Migrate to bottle/weitress from tornado
  • Loading branch information
lorien committed May 1, 2018
2 parents 9ec3d72 + 8fa91d1 commit 20ebe12
Show file tree
Hide file tree
Showing 17 changed files with 341 additions and 876 deletions.
2 changes: 1 addition & 1 deletion .bumpversion.cfg
@@ -1,5 +1,5 @@
[bumpversion]
current_version = 0.0.29
current_version = 0.0.30
files = setup.py test_server/__init__.py docs/conf.py
commit = True
tag = True
Expand Down
30 changes: 0 additions & 30 deletions .travis.yml
Expand Up @@ -8,7 +8,6 @@ matrix:
python: 3.4
env: TOX_ENV=qa

# OSX engine=thread
- os: osx
language: generic
env:
Expand All @@ -20,19 +19,6 @@ matrix:
- TOX_ENV=py36
- PYENV_VERSION="3.6.0"

# OSX engine=subprocess
- os: osx
language: generic
env:
- TOX_ENV=py27-engine-subprocess
- PYENV_VERSION="2.7.13"
- os: osx
language: generic
env:
- TOX_ENV=py36-engine-subprocess
- PYENV_VERSION="3.6.0"

# Linux engine=thread
- os: linux
language: python
env: TOX_ENV=py27
Expand All @@ -47,22 +33,6 @@ matrix:
language: python
python: 3.6
env: TOX_ENV=py36

# Linux engine=subprocess
- os: linux
language: python
env: TOX_ENV=py27-engine-subprocess
- os: linux
language: python
env: TOX_ENV=py34-engine-subprocess
- os: linux
language: python
python: 3.5
env: TOX_ENV=py35-engine-subprocess
- os: linux
language: python
python: 3.6
env: TOX_ENV=py36-engine-subprocess
exclude:
- python: 2.7 # hack to exclude default no-env travis job

Expand Down
10 changes: 9 additions & 1 deletion CHANGELOG.md
@@ -1,8 +1,16 @@
# Change Log of test-server Library

## [0.0.30] - unreleased
## [0.0.31] - unreleased
### Changed

## [0.0.30] - 2018-05-01
### Changed
* Migrate to bottle/webtest/weitress from tornado
* Items of `request['files'][key]` are dicts now

### Removed
* Removed subprocess mode

## [0.0.29] - 2018-04-17
### Changed
* Allow to use null bytes in response headers
Expand Down
10 changes: 0 additions & 10 deletions conftest.py

This file was deleted.

4 changes: 2 additions & 2 deletions docs/conf.py
Expand Up @@ -60,9 +60,9 @@
# built documents.
#
# The short X.Y version.
version = u'.'.join(u'0.0.29'.split('.')[:2])
version = u'.'.join(u'0.0.30'.split('.')[:2])
# The full version, including alpha/beta/rc tags.
release = u'0.0.29'
release = u'0.0.30'

# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
Expand Down
3 changes: 0 additions & 3 deletions pylintrc
Expand Up @@ -2,9 +2,6 @@
jobs=4
extension-pkg-whitelist=pytest

[TYPECHEK]
ignored-modules=six.moves.urllib

[MESSAGES CONTROL]
disable=R,I,fixme,missing-docstring

Expand Down
13 changes: 6 additions & 7 deletions setup.py
Expand Up @@ -10,7 +10,7 @@
setup(
# Meta data
name='test-server',
version='0.0.29',
version='0.0.30',
author='Gregory Petukhov',
author_email='lorien@lorien.name',
maintainer="Gregory Petukhov",
Expand All @@ -23,12 +23,11 @@
license='MIT License',
# Package files
packages=['test_server'],
install_requires=['tornado<5.0.0', 'six', 'psutil', 'filelock'],
entry_points={
'console_scripts': [
'test_server = test_server.server:script_test_server',
],
},
install_requires=[
'webtest',
'bottle>=0.12.13',
'six',
],
# Topics
classifiers=[
'Programming Language :: Python',
Expand Down
56 changes: 56 additions & 0 deletions test/callbacks.py
@@ -0,0 +1,56 @@
# Copyright 2015-2017 Gregory Petukhov (lorien@lorien.name)
# *
# Licensed under the MIT License
# pylint: disable=redefined-outer-name
from six.moves.urllib.request import urlopen

from .util import (# pylint: disable=unused-import
global_server, server
)


def test_callback(server):
def get_callback():
return {
'type': 'response',
'body': b'Hello',
'headers': [
('method', 'get'),
],
}

def post_callback():
return {
'type': 'response',
'body': b'World',
'headers': [
('method', 'post'),
],
}

server.response['callback'] = get_callback
info = urlopen(server.get_url())
assert info.headers['method'] == 'get'
assert info.read() == b'Hello'

server.response['post.callback'] = post_callback
info = urlopen(server.get_url(), b'key=val')
assert info.headers['method'] == 'post'
assert info.read() == b'World'


def test_callback_yield_(server):

def callback():
return {
'type': 'response',
'body': b'HelloWorld',
'headers': [
('method', 'get'),
],
}

server.response['callback'] = callback
info = urlopen(server.get_url())
assert info.headers['method'] == 'get'
assert info.read() == b'HelloWorld'
72 changes: 0 additions & 72 deletions test/container.py

This file was deleted.

70 changes: 35 additions & 35 deletions test/release.py
@@ -1,38 +1,38 @@
# Copyright 2015-2017 Gregory Petukhov (lorien@lorien.name)
# *
# Licensed under the MIT License
from __future__ import absolute_import
import re

from test_server import __version__


def test_changelog():
"""Check release records in chenge log.
Parse changelog and ensure that it contains
* unreleased version younger than release date
* release version has a date
"""
re_date = re.compile(r'^\d{4}-\d{2}-\d{2}$')
re_dev_tail = re.compile(r'(a|b|c|rc|dev).*$')
ver_dates = {}
ver_history = []
for line in open('CHANGELOG.md'):
if line.startswith('## ['):
ver = line.split('[')[1].split(']')[0]
date = line.split('-', 1)[1].strip().lower()
ver_dates[ver] = date
ver_history.append(ver)
release = __version__
if any(x in release for x in ('a', 'b', 'c', 'rc', 'dev')):
print('Ignoring dev release: %s' % release)
future_stable_release = re_dev_tail.sub('', release)
beta_idx = ver_history.index(future_stable_release)
release = ver_history[beta_idx + 1]
print('Assuming current release is still %s' % release)
#print(ver_dates)
#print(ver_history)
assert 'unreleased' not in ver_dates[release]
assert re_date.match(ver_dates[release])
assert ver_history.index(release) == 1
#from __future__ import absolute_import
#import re
#
#from test_server import __version__
#
#
#def test_changelog():
# """Check release records in chenge log.
#
# Parse changelog and ensure that it contains
# * unreleased version younger than release date
# * release version has a date
# """
# re_date = re.compile(r'^\d{4}-\d{2}-\d{2}$')
# re_dev_tail = re.compile(r'(a|b|c|rc|dev).*$')
# ver_dates = {}
# ver_history = []
# for line in open('CHANGELOG.md'):
# if line.startswith('## ['):
# ver = line.split('[')[1].split(']')[0]
# date = line.split('-', 1)[1].strip().lower()
# ver_dates[ver] = date
# ver_history.append(ver)
# release = __version__
# if any(x in release for x in ('a', 'b', 'c', 'rc', 'dev')):
# print('Ignoring dev release: %s' % release)
# future_stable_release = re_dev_tail.sub('', release)
# beta_idx = ver_history.index(future_stable_release)
# release = ver_history[beta_idx + 1]
# print('Assuming current release is still %s' % release)
# #print(ver_dates)
# #print(ver_history)
# assert 'unreleased' not in ver_dates[release]
# assert re_date.match(ver_dates[release])
# assert ver_history.index(release) == 1

0 comments on commit 20ebe12

Please sign in to comment.