Skip to content
This repository has been archived by the owner on Mar 15, 2021. It is now read-only.

Commit

Permalink
Merge pull request #128 from synhack/fix_tests
Browse files Browse the repository at this point in the history
Fix scheduler tests
  • Loading branch information
y0no committed Jan 25, 2018
2 parents d68ec1b + 4b6814f commit 6e39c68
Show file tree
Hide file tree
Showing 7 changed files with 53 additions and 12 deletions.
6 changes: 6 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
services:
- redis-server
- docker

language: python

Expand All @@ -16,6 +17,11 @@ addons:

cache: pip

before_install:
- docker build -t mercure .
- docker run -d --name redis redis
- docker run --link=redis:redis -e 'SECRET_KEY=unit_test' mercure ./manage.py test --exclude-tag=selenium

install:
- pip install -r requirements.txt
- pip install coveralls
Expand Down
19 changes: 19 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
version: '2'

services:
redis:
image: redis
restart: always
front:
image: synhackfr/mercure
restart: always
links:
- redis:redis
ports:
- 8000:8000
environment:
- SECRET_KEY=<random value>
- EMAIL_HOST=mail.example.com
- EMAIL_PORT=587
- EMAIL_HOST_USER=phishing@example.com
- EMAIL_HOST_PASSWORD=P@SSWORD
8 changes: 7 additions & 1 deletion docker/django.ini
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ directory=/usr/src/app
command=python manage.py runserver 0.0.0.0:8000
autostart=true
autorestart=true
stdout_logfile=/var/log/mercure_django.log
redirect_stderr=true

[program:rqworker]
directory=/usr/src/app
Expand All @@ -15,10 +17,14 @@ command=python manage.py rqworker default
stopsignal=TERM
autostart=true
autorestart=true
stdout_logfile=/var/log/mercure_rqworker.log
redirect_stderr=true

[program:rqscheduler]
directory=/usr/src/app
command=python manage.py rqscheduler
stopsignal=TERM
autostart=true
autorestart=true
autorestart=true
stdout_logfile=/var/log/mercure_rqscheduler.log
redirect_stderr=true
6 changes: 2 additions & 4 deletions mercure/settings/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -164,19 +164,17 @@
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.IsAuthenticated',
],
'PAGE_SIZE': 10,
}

CACHES = {
'default': {
'BACKEND': 'redis_cache.cache.RedisCache',
'LOCATION': '%s:%s' % (os.environ.get('REDIS_HOST', 'localhost'),
os.environ.get('REDIS_PORT', '6379')),
'LOCATION': os.environ.get('REDIS_PORT', 'tcp://localhost:6379'),
},
}

RQ_QUEUES = {
'default': {
'USE_REDIS_CACHE': 'default',
'URL': os.environ.get('REDIS_PORT', 'tcp://localhost:6379'),
},
}
9 changes: 7 additions & 2 deletions mercure/settings/prod.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,13 @@
CACHES = {
'default': {
'BACKEND': 'redis_cache.cache.RedisCache',
'LOCATION': '%s:%s' % (os.environ.get('REDIS_HOST', 'redis'),
os.environ.get('REDIS_PORT', '6379')),
'LOCATION': os.environ.get('REDIS_PORT', 'tcp://redis:6379'),
},
}

RQ_QUEUES = {
'default': {
'URL': os.environ.get('REDIS_PORT', 'tcp://redis:6379'),
},
}

Expand Down
4 changes: 1 addition & 3 deletions phishing/models/campaign.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,7 @@ def __str__(self):

@property
def is_launched(self):
if self.send_at < now():
return True
return False
return self.trackers.count() > 0

# TODO: sortir la conf smtp => faire un model
#
Expand Down
13 changes: 11 additions & 2 deletions phishing/tests/user.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,13 @@
from django.urls import reverse
from django.test import TestCase

from phishing.models import Campaign, EmailTemplate
from phishing.models import Campaign, EmailTemplate, TargetGroup, Target
from phishing.tests.helpers import RQMixin


class PermissionTestCase(TestCase):
class PermissionTestCase(RQMixin, TestCase):
def setUp(self):
super(PermissionTestCase, self).setUp()
self.client.get('not-found') # django fix: first client call is 404

def test_default_permission(self):
Expand Down Expand Up @@ -36,6 +38,13 @@ def test_default_permission(self):
Campaign.objects.create(name='test 2', **campaign_infos)
Campaign.objects.create(name='test 3', **campaign_infos)

# send campaign
target_group = TargetGroup.objects.create(name='targets')
Target.objects.create(email='test@test.com',
group=target_group)
campaign.target_groups.add(target_group)
self.run_jobs()

# can list campaign
response = self.client.get(reverse('campaign_list'))
content = response.content.decode()
Expand Down

0 comments on commit 6e39c68

Please sign in to comment.