Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also .

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also .
Choose a Base Repository
hypothesis/h
40a/h
AFDudley/h
BigBlueHat/h
BinaryStars/h
CCH543/h
Cinemacloud/h
Ericgood/h
FTG-003/h
Forethinker/h
GratefulTony/h
HGldJ1966/h
JJediny/h
John-Williams/h
Laurian/h
LittleFancy/h
MattyQ/h
Mishkin2015/h
RichardLitt/h
Staffan1/h
SteelWagstaff/h
TowerBR/h
VanyTang/h
abigailricarte/h
ackermann/h
alecchap/h
alesarrett/h
alexsegura/h
almereyda/h
alon/h
andzi/h
angelicxsoul/h
ansmoh/h
apurvajalit/h
arjunvasan/h
asdevor/h
bZichett/h
badgettrg/Webmarks
balmas/h
balupton/h
bbarker/h
bennlich/h
benthor/h
blakewest/h
bogste/h
bradparks/h
brittanystoroz/h
buiquangchien/h
cdchapman/h
charblanc/h
chowsamihq/h
chr7stos/Webmarks
chrber/h
chrismPssina/h
christinaphamAD/h
cmbirk/h
codeaudit/h
coolcool21/h
cove/h
csillag/h
danjimilk/h
dannyhope/h
daredream/h
davidmcclure/h
dennisplucinik/h
dezynetechnologies/h
diegodlh/h
djcun95/h
donsequitur/h
edsu/h
eiro10/h
emckean/h
ercchy/h
eshellman/h
fangang123/h
fchasen/h
fcrimins/h
fhirsch/h
ficolo/h
fragkopoulos/h
gauravkeerthi/h
geass/h
gergely-ujvari/h
gitter-badger/h
gnott/h
gobengo/h
gorinovic/h
gus3000/h
hashin/h
helemaalbigt/h
hmstepanek/h
hwasiti/h
hylhero/h
hyperstudio/h
iHDeveloper/h
imeysam/h
jackspaceBerkeley/h
jarey/h
jasdeep/h
jason790/h
jasonzou/j
jazahn/h
jccr/h
jean/h
jeka57/h
jeremydean/h
jermnelson/h
jibe-b/h
jnishiyama/h
jojksd/h
jpadilla/h
jtremback/h
judell/h
juli-so/h
kabacs/h
karissa/h
kaushikvijay/h
kaydoh/h
kill4uk/h
klopiinas/h
klrkdekira/h
koulihong311/h
krassif/h
krstnkngs/h
leoqmp/h
linhua55/h
lucadealfaro/h
lyspooner/h
lyzadanger/h
m1yag1/h
magee/h
mambocab/h
manunymous/h
maraino/h
mari-ja/h
markbarratt/h
martinq/h
mbbaig/h
mcarv63/h
meawoppl/h
meflyup/h
metasj/h
mgasner/h
mgax/h
mollycr/h
mrchrisadams/h
mrienstra/h
mshavlovsky/h
muddasani/h
nagyist/hyphothesis-h
nagyistoce/hypothesis-h
nanxio/h
neozhangthe1/h
ningyifan/h
nkingsley/h
nlholdem/h
nlisgo/h
noscripter/h
nshkuro/h
odnodn/h
oliversauter/h
openbizgit/h
opengovfoundation/h
openstax/hypothesis-server
ouroboros8/h
pablomarti/h
pamo/h
philipn/h
philschatz/h
pinballwonder/h
plainspace/h
raowl/h
rickyhan/h
rmoorman/h
rmtsukuru/h
robertknight/h
rowhit/h
rsarxiv/h
saakaifoundry/h
samrose/h
scharf/h
shepazu/h
sherah/h
shofheinz/h
soapdog/h
ssin122/test-h
st-fresh/h
stuk88/h
sylvanmist/h
tetratorus/h
tilgovi/h
tomnar/h
trivenews/h
truthadjustr/h
utngz/h
voidfiles/h
wenchen/h
yargevad/h
yumatch/h
zshen777/h
Nothing to show
Choose a Head Repository
hypothesis/h
40a/h
AFDudley/h
BigBlueHat/h
BinaryStars/h
CCH543/h
Cinemacloud/h
Ericgood/h
FTG-003/h
Forethinker/h
GratefulTony/h
HGldJ1966/h
JJediny/h
John-Williams/h
Laurian/h
LittleFancy/h
MattyQ/h
Mishkin2015/h
RichardLitt/h
Staffan1/h
SteelWagstaff/h
TowerBR/h
VanyTang/h
abigailricarte/h
ackermann/h
alecchap/h
alesarrett/h
alexsegura/h
almereyda/h
alon/h
andzi/h
angelicxsoul/h
ansmoh/h
apurvajalit/h
arjunvasan/h
asdevor/h
bZichett/h
badgettrg/Webmarks
balmas/h
balupton/h
bbarker/h
bennlich/h
benthor/h
blakewest/h
bogste/h
bradparks/h
brittanystoroz/h
buiquangchien/h
cdchapman/h
charblanc/h
chowsamihq/h
chr7stos/Webmarks
chrber/h
chrismPssina/h
christinaphamAD/h
cmbirk/h
codeaudit/h
coolcool21/h
cove/h
csillag/h
danjimilk/h
dannyhope/h
daredream/h
davidmcclure/h
dennisplucinik/h
dezynetechnologies/h
diegodlh/h
djcun95/h
donsequitur/h
edsu/h
eiro10/h
emckean/h
ercchy/h
eshellman/h
fangang123/h
fchasen/h
fcrimins/h
fhirsch/h
ficolo/h
fragkopoulos/h
gauravkeerthi/h
geass/h
gergely-ujvari/h
gitter-badger/h
gnott/h
gobengo/h
gorinovic/h
gus3000/h
hashin/h
helemaalbigt/h
hmstepanek/h
hwasiti/h
hylhero/h
hyperstudio/h
iHDeveloper/h
imeysam/h
jackspaceBerkeley/h
jarey/h
jasdeep/h
jason790/h
jasonzou/j
jazahn/h
jccr/h
jean/h
jeka57/h
jeremydean/h
jermnelson/h
jibe-b/h
jnishiyama/h
jojksd/h
jpadilla/h
jtremback/h
judell/h
juli-so/h
kabacs/h
karissa/h
kaushikvijay/h
kaydoh/h
kill4uk/h
klopiinas/h
klrkdekira/h
koulihong311/h
krassif/h
krstnkngs/h
leoqmp/h
linhua55/h
lucadealfaro/h
lyspooner/h
lyzadanger/h
m1yag1/h
magee/h
mambocab/h
manunymous/h
maraino/h
mari-ja/h
markbarratt/h
martinq/h
mbbaig/h
mcarv63/h
meawoppl/h
meflyup/h
metasj/h
mgasner/h
mgax/h
mollycr/h
mrchrisadams/h
mrienstra/h
mshavlovsky/h
muddasani/h
nagyist/hyphothesis-h
nagyistoce/hypothesis-h
nanxio/h
neozhangthe1/h
ningyifan/h
nkingsley/h
nlholdem/h
nlisgo/h
noscripter/h
nshkuro/h
odnodn/h
oliversauter/h
openbizgit/h
opengovfoundation/h
openstax/hypothesis-server
ouroboros8/h
pablomarti/h
pamo/h
philipn/h
philschatz/h
pinballwonder/h
plainspace/h
raowl/h
rickyhan/h
rmoorman/h
rmtsukuru/h
robertknight/h
rowhit/h
rsarxiv/h
saakaifoundry/h
samrose/h
scharf/h
shepazu/h
sherah/h
shofheinz/h
soapdog/h
ssin122/test-h
st-fresh/h
stuk88/h
sylvanmist/h
tetratorus/h
tilgovi/h
tomnar/h
trivenews/h
truthadjustr/h
utngz/h
voidfiles/h
wenchen/h
yargevad/h
yumatch/h
zshen777/h
Nothing to show
  • 7 commits
  • 8 files changed
  • 0 commit comments
  • 1 contributor
Commits on Mar 29, 2015
Revert "Add test stub for mappings"
This reverts commit c1b7954.

The functionality tested by this commit is mostly implemented by
ElasticSearch, a component we shouldn't be testing.
Reintroduce tests which check the analyzer configuration
The previous commit removed a integrated test of the analysis
configuration for the URI fields. This commit reintroduces the test, but
without requiring integration with ElasticSearch.

We simply check that (on the basis of the supplied regular expression
patterns) the predicted analyser captures contain what we want.
Add buildkite automation scripts to Dockerfile
These are only small, and adding them to the Docker image makes it
possible to run the tests from the vanilla built image relatively
simply, by running (for example)

    docker run hypothesis/h ./.buildkite/bin/test-frontend

or

    docker run hypothesis/h ./.buildkite/bin/test-backend
Remove Dockerfile ENTRYPOINT
The Dockerfile ENTRYPOINT makes it convenient to run commands which have
a common prefix, while making it much harder to run commands which do
not.

For the purposes of running tests (as well as from a more general
"principle of least surprise") it makes more sense to remove the
ENTRYPOINT and specify a default command instead.
Showing with 54 additions and 41 deletions.
  1. +9 −0 .buildkite/bin/test-backend
  2. +15 −0 .buildkite/bin/test-frontend
  3. +0 −3 .travis.yml
  4. +2 −2 Dockerfile
  5. +0 −3 Makefile
  6. +0 −1 conf/test.ini
  7. +0 −14 h/conftest.py
  8. +28 −18 h/test/models_test.py
@@ -0,0 +1,9 @@
#!/bin/sh
set -eu
echo "--- Installing dependencies"
pip install -e .[dev,testing,YAML]
echo "+++ Running tests"t
exec python setup.py test --cov
@@ -0,0 +1,15 @@
#!/bin/sh
set -eu
export DEBIAN_FRONTEND=noninteractive
echo "--- Installing PhantomJS"
apt-get update
apt-get install -y phantomjs
echo "--- Installing dependencies"
npm install
echo "+++ Running tests"
exec $(npm bin)/karma start h/static/scripts/karma.config.js --single-run
View
@@ -2,9 +2,6 @@ language:
- python
python:
- '2.7'
before_install:
- sudo /usr/share/elasticsearch/bin/plugin -install elasticsearch/elasticsearch-analysis-icu/2.4.1
- sudo service elasticsearch restart
install:
- gem install sass
- gem install compass
View
@@ -51,12 +51,12 @@ ADD gunicorn.conf.py /src/h/
ADD bin /src/h/bin
ADD conf /src/h/conf
ADD h /src/h/h
ADD .buildkite /src/h/.buildkite
RUN pip install -r requirements.txt
# Services (for runit)
ADD ./svc /etc/service
# Startup and ports
ENTRYPOINT ["/sbin/my_init"]
CMD []
CMD ["/sbin/my_init"]
EXPOSE 8000
View
@@ -24,9 +24,6 @@ dev:
@gunicorn --reload --paste conf/development.ini
test:
@echo -n "Checking to see if elasticsearch is running..."
$(eval es := $(shell wget --quiet --output-document - http://localhost:9200))
@if [ -n '${es}' ] ; then echo "yes." ; else echo "no!"; exit 1; fi
@python setup.py test
@"$$(npm bin)"/karma start h/static/scripts/karma.config.js --single-run
@"$$(npm bin)"/karma start h/browser/chrome/karma.config.js --single-run
View
@@ -2,7 +2,6 @@
use: egg:h
es.host: http://localhost:9200
es.index: annotator_test
sqlalchemy.url: sqlite://
View
@@ -15,9 +15,6 @@
from sqlalchemy.orm import scoped_session, sessionmaker
from zope.sqlalchemy import ZopeTransactionExtension
from h.api.db import create_db, delete_db
from h.api.db import store_from_settings
@pytest.fixture(scope='session', autouse=True)
def settings():
@@ -90,17 +87,6 @@ def flush(self):
return sess
@pytest.fixture()
def es_connection(request, settings):
es = store_from_settings(settings)
create_db()
# Pylint issue #258: https://bitbucket.org/logilab/pylint/issue/258
#
# pylint: disable=unexpected-keyword-arg
es.conn.cluster.health(wait_for_status='yellow')
request.addfinalizer(delete_db)
@pytest.fixture()
def mailer(config):
from pyramid_mailer.interfaces import IMailer
View
@@ -1,9 +1,9 @@
# -*- coding: utf-8 -*-
import unittest
import pytest
from pytest import fixture, raises
from pyramid import security
import re
from h import models
@@ -60,20 +60,30 @@ def test_group_authenticated(self):
assert actual == expect
@pytest.mark.usefixtures('es_connection')
def test_uri_mapping():
permissions = {
'read': ['group:__world__'],
}
a1 = models.Annotation(uri='http://example.com/page#hashtag',
permissions=permissions)
a1.save()
a2 = models.Annotation(uri='http://example.com/page',
permissions=permissions)
a2.save()
a3 = models.Annotation(uri='http://totallydifferent.domain.com/',
permissions=permissions)
a3.save()
res = models.Annotation.search(query={'uri': 'example.com/page'})
assert len(res) == 2
analysis = models.Annotation.__analysis__
index_patterns = analysis['filter']['uri_index']['patterns']
search_patterns = analysis['filter']['uri_search']['patterns']
def test_uri_search_indexes_hash_variants():
caps = _pattern_captures(index_patterns, 'http://example.com/page#hash')
assert 'example.com/page' in caps
def test_uri_search_searches_hash_variants():
caps = _pattern_captures(search_patterns, 'http://example.com/page#hash')
assert 'example.com/page' in caps
# Simulate the ElasticSearch pattern_capture filter!
def _pattern_captures(patterns, uri):
result = []
patterns_re = [re.compile(p) for p in patterns]
for p in patterns_re:
m = p.search(uri)
if m is not None:
result.append(m.group(1))
return result

No commit comments for this range