Begin fixing tests.

Use custom django-navhelper
This commit is contained in:
Adarnof
2017-04-05 00:10:05 -04:00
parent 26405985a2
commit f0f1b21226
9 changed files with 136 additions and 42 deletions

View File

@@ -72,6 +72,8 @@ class UserProfile(models.Model):
notify(self.user, _('State Changed'),
_('Your user state has been changed to %(state)s') % ({'state': state}),
'info')
from authentication.signals import state_changed
state_changed.send(sender=self.__class__, user=self.user, state=self.state)
def __str__(self):
return str(self.user)

View File

@@ -1,10 +1,9 @@
from __future__ import unicode_literals
from django.db.models.signals import post_save, pre_delete, m2m_changed
from django.db.models import Q
from django.dispatch import receiver
from django.dispatch import receiver, Signal
from django.contrib.auth.models import User
from authentication.models import CharacterOwnership, UserProfile, get_guest_state, State
from services.tasks import validate_services
from esi.models import Token
from eveonline.managers import EveManager
from eveonline.models import EveCharacter
@@ -13,6 +12,9 @@ import logging
logger = logging.getLogger(__name__)
state_changed = Signal(providing_args=['user', 'state'])
def trigger_state_check(state):
# evaluate all current members to ensure they still have access
for profile in state.userprofile_set.all():
@@ -57,8 +59,6 @@ def reassess_on_profile_save(sender, instance, created, *args, **kwargs):
update_fields = kwargs.pop('update_fields', []) or []
if 'state' not in update_fields:
instance.assign_state()
# TODO: how do we prevent running this twice on profile state change?
validate_services(instance.user)
@receiver(post_save, sender=User)

View File

@@ -113,7 +113,7 @@
{% if perms.corputils.view_corp_corpstats or perms.corputils.view_alliance_corpstats or perms.corputils.view_blue_corpstats %}
<li>
<a class="{% navactive request 'corputils:view corputils:search' %}" href="{% url 'corputils:view' %}">
<a class="{% navactive request 'corputils:' %}" href="{% url 'corputils:view' %}">
<i class="fa fa-share-alt fa-fw grayiconecolor"></i>{% trans " Corporation Stats" %}
</a>
</li>

View File

View File

@@ -0,0 +1,51 @@
from __future__ import unicode_literals
try:
# Py3
from unittest import mock
except ImportError:
# Py2
import mock
from django.test import TestCase
from alliance_auth.tests.auth_utils import AuthUtils
from authentication.models import State, get_guest_state
from eveonline.models import EveCharacter, EveCorporationInfo, EveAllianceInfo
class StateTestCase(TestCase):
def setUp(self):
self.user = AuthUtils.create_user('test_user', disconnect_signals=True)
AuthUtils.add_main_character(self.user, 'Test Character', '1', corp_id='1', alliance_id='1',
corp_name='Test Corp', alliance_name='Test Alliance')
self.guest_state = get_guest_state()
self.test_character = EveCharacter.objects.get(character_id='1')
self.test_corporation = EveCorporationInfo.objects.create(corporation_id='1', corporation_name='Test Corp',
corporation_ticker='TEST', member_count=1)
self.test_alliance = EveAllianceInfo.objects.create(alliance_id='1', alliance_name='Test Alliance',
alliance_ticker='TEST', executor_corp_id='1')
self.member_state = State.objects.create(
name='Test Member',
priority=150,
)
def test_state_assignment_on_character_change(self):
self.member_state.member_characters.add(self.test_character)
self.assertEquals(self.user.profile.state, self.member_state)
self.member_state.member_characters.remove(self.test_character)
self.assertEquals(self.user.profile.state, self.guest_state)
def test_state_assignment_on_corporation_change(self):
self.member_state.member_corporations.add(self.test_corporation)
self.assertEquals(self.user.profile.state, self.member_state)
self.member_state.member_corporations.remove(self.test_corporation)
self.assertEquals(self.user.profile.state, self.guest_state)
def test_state_assignment_on_alliance_addition(self):
self.member_state.member_alliances.add(self.test_alliance)
self.assertEquals(self.user.profile.state, self.member_state)
self.member_state.member_alliances.remove(self.test_alliance)
self.assertEquals(self.user.profile.state, self.guest_state)