Exemple #1
0
    def setUp(self):
        self.rt = EconomicResourceType(
            name='Spam',
            slug='test-rt-spam'
        )
        self.rt.save()

        self.the_best_user = User.objects.create_user('david', '*****@*****.**', 'my actual secret password in real life')
        self.the_best_user.save()

        self.mi6 = AgentType(
            name='MI6 Spy',
            party_type='org',
            #is_context=True
        )
        self.mi6.save()

        self.secret_agent = EconomicAgent(
            name='bond, james bond',
            nick='007',
            agent_type=self.mi6,
            #is_context=True,
            slug='bond-james-bond'
        )
        self.secret_agent.save()

        self.queen = AgentUser(
            agent=self.secret_agent,
            user=self.the_best_user
        )
        self.queen.save()

        self.app.set_user(self.the_best_user)
Exemple #2
0
 def resolve_activate_user_create_person(self, args, *rargs):
     token = args.get('user_token', None)
     username = args.get('username', None)
     name = args.get('name', None)
     image = args.get('image', None)
     phone = args.get('phone', None)
     if token is None:
         raise ValidationError("Invalid token.")
     if username is None:
         raise ValidationError("Invalid username.")
     if name is None:
         raise ValidationError("Name is required.")
     user = User.objects.get(username=username)
     if user is None:
         raise ValidationError("Invalid username.")
     from valuenetwork.tokens import signup_confirmation_token
     if signup_confirmation_token.check_token(user, token):
         user.is_active = True
         user.save()
     else:
         raise ValidationError("Invalid token.")
     at_person = AgentType.objects.get(party_type="individual")
     agent = EconomicAgent(
         nick=name,
         name=name,
         photo_url=image,
         phone_primary=phone,
         agent_type=at_person,
         email=user.email,
         created_by=user,
     )
     agent.save()
     au = AgentUser(agent=agent, user=user)
     au.save()
     return "User " + username + " activated, Agent and AgentUser created."
Exemple #3
0
    def mutate(cls, root, args, context, info):
        #import pdb; pdb.set_trace()
        name = args.get('name')
        image = args.get('image')
        note = args.get('note')
        primary_location_id = args.get('primary_location_id')
        primary_phone = args.get('primary_phone')
        email = args.get('email')
        type = args.get('type')

        if not note:
            note = ""
        if not image:
            image = ""
        if primary_location_id:
            location = Location.objects.get(pk=primary_location_id)
        else:
            location = None
        get_type = None
        if type:
            get_type = AgentType.objects.get(name=type)
        if not type:
            get_types = AgentType.objects.get(party_type="org")
            if get_types:
                get_type = get_types[0]

        agent = EconomicAgent(
            name=name,
            nick=name,
            agent_type=get_type,
            photo_url=image,
            description=note,
            primary_location=location,
            phone_primary=primary_phone,
            email=email,
            created_by=context.user,
        )

        user_agent = AgentUser.objects.get(user=context.user).agent
        is_authorized = user_agent.is_authorized(object_to_mutate=agent)
        if is_authorized:
            agent.save()
        else:
            raise PermissionDenied(
                'User not authorized to perform this action.')

        return CreateOrganization(organization=formatAgent(agent))
Exemple #4
0
    def mutate(cls, root, args, context, info):
        #import pdb; pdb.set_trace()
        name = args.get('name')
        image = args.get('image')
        note = args.get('note')
        primary_location_id = args.get('primary_location_id')
        primary_phone = args.get('primary_phone')
        email = args.get('email')
        type = args.get('type')

        if not note:
            note = ""
        if not image:
            image = ""
        if primary_location_id:
            location = Location.objects.get(pk=primary_location_id)
        else:
            location = None
        get_type = None
        if type:
            get_type = AgentType.objects.get(name=type)
        if not type:
            get_types = AgentType.objects.get(party_type="org")
            if get_types:
                get_type = get_types[0]

        agent = EconomicAgent(
            name = name,
            nick = name,
            agent_type = get_type,
            photo_url = image,
            description = note,
            primary_location = location,
            phone_primary = primary_phone,
            email = email,
            created_by=context.user,
        )

        user_agent = AgentUser.objects.get(user=context.user).agent
        is_authorized = user_agent.is_authorized(object_to_mutate=agent)
        if is_authorized:
            agent.save()
        else:
            raise PermissionDenied('User not authorized to perform this action.')

        return CreateOrganization(organization=formatAgent(agent))
Exemple #5
0
    def resolve_create_user_person(self, args, *rargs):
        username = args.get('username', None)
        email = args.get('email', None)
        pswd = args.get('pswd', None)
        name = args.get('name', None)
        image = args.get('image', None)
        phone = args.get('phone', None)

        if username is None:
            raise ValidationError("Username is required.")
        if name is None:
            raise ValidationError("Name is required.")
        if email is None:
            raise ValidationError("Email is required.")
        if pswd is None:
            raise ValidationError("Password is required.")

        user = User.objects.create_user(username=username,
                                        email=email,
                                        password=pswd)
        user.is_active = True
        user.save()
        at_person = AgentType.objects.get(party_type="individual")
        agent = EconomicAgent(
            nick=name,
            name=name,
            photo_url=image,
            phone_primary=phone,
            agent_type=at_person,
            email=user.email,
            created_by=user,
        )
        agent.save()
        au = AgentUser(agent=agent, user=user)
        au.save()
        return "User " + username + " created, Agent and AgentUser created."
Exemple #6
0
class NoQuantityTest(WebTest):

    fixtures = ['verdun']

    def setUp(self):
        self.rt = EconomicResourceType(
            name='Spam',
            slug='test-rt-spam'
        )
        self.rt.save()

        self.the_best_user = User.objects.create_user('david', '*****@*****.**', 'my actual secret password in real life')
        self.the_best_user.save()

        self.mi6 = AgentType(
            name='MI6 Spy',
            party_type='org',
            #is_context=True
        )
        self.mi6.save()

        self.secret_agent = EconomicAgent(
            name='bond, james bond',
            nick='007',
            agent_type=self.mi6,
            #is_context=True,
            slug='bond-james-bond'
        )
        self.secret_agent.save()

        self.queen = AgentUser(
            agent=self.secret_agent,
            user=self.the_best_user
        )
        self.queen.save()

        self.app.set_user(self.the_best_user)

    def tearDown(self):
        self.rt.delete()
        self.queen.delete()
        self.secret_agent.delete()
        self.mi6.delete()
        self.the_best_user.delete()
        self.app.set_user(None)

    def test_form_fields(self):
        form = CreateUnquantifiedResourceForm(initial={})
        bad_field = None
        all_fields = form.fields
        try:
            bad_field = all_fields['quantity']
        except:
            pass

        self.assertIsNone(bad_field, msg="found quantity field in form object; fields: \n %s" % (all_fields,))

    def test_no_quantity(self):
        """Resource Type creation form should not take a quantity
        """
        resp = self.app.get(
            '/accounting/resource-type/%s/' % (self.rt.id,)
        )#.follow()#again if resp requires a redirect some day.
        self.assertIn('agent', resp.context, msg='agent is not in context')
        self.assertEqual(self.the_best_user.agent.agent, self.secret_agent,
            msg="This is not the agent we're looking for, it's %s" % (resp.context['agent'],)
        )

        res_form = None
        field = None
        try:
            res_form = resp.forms['resourceForm']
        except:
            pass
        self.assertIsNotNone(res_form, msg='form#resourceForm not found')

        try:
            field = res_form.fields['quantity']

        except:
            pass

        self.assertIsNone(field, msg='found (form#resourceForm).quantity')