예제 #1
0
파일: user.py 프로젝트: zzsnicole/Bankey
    def create(self, validated_data):
        address_data = validated_data.pop('address')
        user = User.objects.create(**validated_data)
        country = Country.objects.get(code=address_data['country'])
        user.address = Address.objects.create(country=country)
        user.set_password(validated_data['password'])
        user.save()
        Token.objects.create(user=user)
        # first_name, last_name = validated_data['name'].split(' ')
        birth_date = int(
            time.mktime(
                time.strptime(str(validated_data['birth_date']), '%Y-%m-%d')))
        mangopay_user = NaturalUser(first_name=validated_data['name'],
                                    last_name=validated_data['surname'],
                                    birthday=birth_date,
                                    nationality=country.code,
                                    country_of_residence=country.code,
                                    person_type='NATURAL',
                                    email=validated_data['email'])
        mangopay_user.save()
        user.mangopay_user_id = mangopay_user.id
        user.save()
        wallet = Wallet(owners=[mangopay_user],
                        description='Wallet for USD',
                        currency='USD')

        wallet.save()
        currency = Currency.objects.get(code='USD')
        UserWallet.objects.create(user=user,
                                  currency=currency,
                                  mangopay_wallet_id=wallet.id)
        return user
예제 #2
0
def make_mangopay_account(FirstName):
    account = NaturalUser()
    account.FirstName = FirstName
    account.LastName = 'Foobar'
    account.CountryOfResidence = 'BE'
    account.Nationality = 'BE'
    account.Birthday = 0
    account.Email = '*****@*****.**'
    account.save()
    return account.Id
예제 #3
0
    def test_create_ubo_declaration(self):
        self.mock_legal_user()
        self.mock_declarative_user()
        self.mock_ubo_declaration()

        params = {
            "first_name":
            "Victor",
            "last_name":
            "Hugo",
            "address":
            Address(address_line_1='AddressLine1',
                    address_line_2='AddressLine2',
                    city='City',
                    region='Region',
                    postal_code='11222',
                    country='FR'),
            "birthday":
            today,
            "nationality":
            "FR",
            "country_of_residence":
            "FR",
            "occupation":
            "Writer",
            "income_range":
            6,
            "proof_of_identity":
            None,
            "proof_of_address":
            None,
            "person_type":
            "NATURAL",
            "email":
            "*****@*****.**",
            "tag":
            "custom tag",
            "capacity":
            "DECLARATIVE"
        }
        user = NaturalUser(**params)
        user.save()

        params = {"user_id": "1169420", "declared_ubos": ["11694190"]}
        ubo_declaration = UboDeclaration(**params)
        ubo_declaration.save()

        self.assertTrue(isinstance(ubo_declaration, UboDeclaration))
        self.assertTrue(ubo_declaration.id == "1169420")
        self.assertTrue(len(ubo_declaration.declared_ubos) == 1)
        ubo = ubo_declaration.declared_ubos[0]
        self.assertTrue(isinstance(ubo, DeclaredUbo))
        self.assertTrue(ubo.user_id == '11694190')
        self.assertTrue(ubo.status == 'CREATED')
예제 #4
0
파일: models.py 프로젝트: ojr9/g39
    def create(self):
        if not self.birthday or self.birthday == 0:
            db = 1
        else:
            db = _make_timestamp(self.birthday)
        mango_call = NaturalUser(FirstName=self.user.first_name, LastName=self.user.last_name, Email=self.user.email,
                                 Birthday=db, Nationality=self.nationality,
                                 CountryOfResidence=self.country_of_residence)

        mango_call.save()
        self.mid = mango_call.Id
        # Add more data from the return of the call
        self.save()
예제 #5
0
def make_mangopay_account(FirstName):
    account = NaturalUser()
    account.FirstName = FirstName
    account.LastName = 'Foobar'
    account.CountryOfResidence = 'BE'
    account.Nationality = 'BE'
    account.Birthday = 0
    account.Email = '*****@*****.**'
    account.save()
    return account.Id
예제 #6
0
파일: models.py 프로젝트: ojr9/confessapp
 def create(
         self
 ):  # check if not to pass in the user from the request in the view
     self.birthday = _date_from_timestamp(1)
     mango_call = NaturalUser(FirstName=self.user.first_name,
                              LastName=self.user.last_name,
                              Email=self.user.email,
                              Birthday=1,
                              Nationality=self.nationality,
                              CountryOfResidence=self.country_of_residence)
     mango_call.save()
     self.usertype = 'NATURAL'
     self.mid = mango_call.get_pk()
     print(self.birthday)
     print(type(self.birthday))
     self.save()
예제 #7
0
파일: user.py 프로젝트: zzsnicole/Bankey
 def update(self, instance, validated_data):
     mangopay_user = NaturalUser.get(instance.mangopay_user_id)
     print(">>>>>", mangopay_user.id)
     address_data = validated_data.pop('address')
     address = instance.address
     address.line1 = address_data.get('line1', address.line1)
     mangopay_user.address.address_line_1 = address_data.get(
         'line1', address.line1)
     address.line2 = address_data.get('line2', address.line2)
     mangopay_user.address.address_line_2 = address_data.get(
         'line2', address.line2)
     address.city = address_data.get('city', address.city)
     mangopay_user.address.city = address_data.get('city', address.city)
     address.state = address_data.get('state', address.state)
     mangopay_user.address.region = address_data.get('state', address.state)
     address.country = Country.objects.get(
         code=address_data.get('country', address.country))
     mangopay_user.address.country = address_data.get(
         'country', address.country)
     address.pin_code = address_data.get('pin_code', address.pin_code)
     mangopay_user.address.postal_code = address_data.get(
         'pin_code', address.pin_code)
     address.save()
     mangopay_user.save()
     return instance
예제 #8
0
    def post(self, request, format=None):
        try:
            currency = Currency.objects.get(code=request.data['currency'])
            receiver_user = User.objects.get(phone_no=request.data['mobile_number'])
            sender_wallet_obj = UserWallet.objects.get(user=request.user, currency=currency, status='A')
            sender_wallet = Wallet.get(sender_wallet_obj.mangopay_wallet_id)
            receiver_wallet_obj = UserWallet.objects.get(user=receiver_user, currency=currency, status='A')
            receiver_wallet = Wallet.get(receiver_wallet_obj.mangopay_wallet_id)
            author_user = NaturalUser.get(request.user.mangopay_user_id)
            transfer = Transfer(author=author_user, #sender
                                debited_funds=Money(amount=request.data['amount'], currency=currency.code),
                                fees=Money(amount=currency.fee, currency=currency.code),
                                debited_wallet=sender_wallet,
                                credited_wallet=receiver_wallet)

            transfer.save()
            logger.info("Money transfered successfully from {} user to {} user."\
                        .format(request.user.phone_no, receiver_user.phone_no))
            return Response({
                'success': True,
                'message': 'Money transfered successfully.',
                'data':{
                    'transaction_id':transfer.get_pk()
                }
            })
        except Exception as e:
            logger.exception("{}, error occured while transfering money.".format(e))
            return Response({
                'success': False,
                'message': 'Error occured while transfering money.',
                'data':{}
            })
    def test_update_ubo_declaration(self):
        self.mock_legal_user()
        self.mock_declarative_user()
        self.mock_ubo_declaration()

        params = {
            "first_name": "Victor",
            "last_name": "Hugo",
            "address": Address(address_line_1='AddressLine1', address_line_2='AddressLine2',
                               city='City', region='Region',
                               postal_code='11222', country='FR'),
            "birthday": today,
            "nationality": "FR",
            "country_of_residence": "FR",
            "occupation": "Writer",
            "income_range": 6,
            "proof_of_identity": None,
            "proof_of_address": None,
            "person_type": "NATURAL",
            "email": "*****@*****.**",
            "tag": "custom tag",
            "capacity": "DECLARATIVE"
        }
        user = NaturalUser(**params)
        user.save()

        params = {
            "user_id": "1169420",
            "declared_ubos": ["11694190"]
        }
        ubo_declaration = UboDeclaration(**params)
        ubo_declaration.save()

        updated_value = 'Updated Tag'

        self.register_mock({
            "method": responses.PUT,
            "url": settings.MANGOPAY_API_SANDBOX_URL + settings.MANGOPAY_CLIENT_ID + '/ubodeclarations/1169420',
            "body": get_fixture('ubo_declaration') % ('"' + updated_value + '"'),
            "status": 200
        })

        ubo_declaration.tag = updated_value
        ubo_declaration.save()

        self.assertTrue(ubo_declaration.id == "1169420")
        self.assertTrue(ubo_declaration.tag == updated_value)
예제 #10
0
파일: models.py 프로젝트: ojr9/g39
    def _validated(self):
        mpu = NaturalUser.get(id=self.mid)
        # mpu need to do stuff here!!!
        # sdlkfjas ldkf ;slakdjfsd jfasd fs asd
        #lkashd fshdf kajs hdklasfh
        # klajsdf laksd flasdh flak sd

        return self.validation_status
예제 #11
0
 def post(self, request, format=None):
     try:
         cash_request = CashRequest.objects.get(user_confirmation_code=request.data['confirmation_code'])
         teller = Teller.objects.get(user=request.user)
         if cash_request.teller == teller:
             teller_wallet_obj = UserWallet.objects.get(user=request.user, currency=cash_request.currency, status='A')
             teller_wallet = Wallet.get(teller_wallet_obj.mangopay_wallet_id)
             user_wallet_obj = UserWallet.objects.get(user=cash_request.user, currency=cash_request.currency, status='A')
             user_wallet = Wallet.get(user_wallet_obj.mangopay_wallet_id)
             if cash_request.request_type == 'A':
                 transaction_amount = cash_request.amount - teller.fee
                 author_user = NaturalUser.get(request.user.mangopay_user_id)
                 transfer = Transfer(author=author_user, #sender
                                     debited_funds=Money(amount=transaction_amount, currency=cash_request.currency.code),
                                     fees=Money(amount=cash_request.currency.fee, currency=cash_request.currency.code),
                                     debited_wallet=teller_wallet,
                                     credited_wallet=user_wallet)
             else:
                 transaction_amount = cash_request.amount + teller.fee + cash_request.currency.fee
                 author_user = NaturalUser.get(cash_request.user.mangopay_user_id)
                 transfer = Transfer(author=author_user, #sender
                                     debited_funds=Money(amount=transaction_amount, currency=cash_request.currency.code),
                                     fees=Money(amount=cash_request.currency.fee, currency=cash_request.currency.code),
                                     debited_wallet=user_wallet,
                                     credited_wallet=teller_wallet)
             transfer.save()
         cash_request.transaction_reference_number = transfer.get_pk()
         cash_request.save()
         logger.info("Cash_transaction completed successfully  between {} user and {} teller for {} cashrequest."\
                     .format(request.user.phone_no, teller.user.phone_no, cash_request.id))
         return Response({
             'success': True,
             'message': 'Cash transaction successfully completed.',
             'data':{
                 'transaction_id':transfer.get_pk()
             }
         })
     except Exception as e:
         logger.exception("{}, error occured while cash transaction.".format(e))
         return Response({
             'success': False,
             'message': 'Error occured while cash transaction.',
             'data':{}
         })
예제 #12
0
    def post(self, request, format=None):
        try:
            try:
                currency = Currency.objects.get(code=request.data['currency'])
                card_detail = UserCardDetails.objects.get(user=request.user,
                                                          currency=currency,
                                                          is_completed=True)
            except UserCardDetails.DoesNotExist:
                return Response({
                    'success': True,
                    'message':
                    'Please complete card registration first for selected currency.',
                    'data': {}
                })
            card_registration = CardRegistration.get(
                card_detail.mangopay_card_registration_id)
            user_wallet = UserWallet.objects.get(user=request.user,
                                                 currency=currency,
                                                 status='A')
            wallet = Wallet.get(user_wallet.mangopay_wallet_id)
            mangopay_user = NaturalUser.get(request.user.mangopay_user_id)
            direct_payin = DirectPayIn(
                author=mangopay_user,
                debited_funds=Money(amount=request.data['amount'],
                                    currency=currency.code),
                fees=Money(amount=currency.fee, currency=currency.code),
                credited_wallet_id=wallet.get_pk(),
                card_id=card_registration.CardId,
                secure_mode="DEFAULT",
                secure_mode_return_url="/")  #take url from client

            direct_payin.save()
            logger.info("{} {} credited by {} user.".format(
                request.data['amount'], currency.code, request.user.phone_no))
            return Response({
                'success': True,
                'message': 'Money successfully credited.',
                'data': {
                    'transaction_id': direct_payin.get_pk()
                }
            })
        except Exception as e:
            logger.error(
                "{}, error occured while adding money by card.".format(e))
            return Response({
                'success': False,
                'message': 'Error occured while adding money by card.',
                'data': {}
            })
예제 #13
0
 def get_user(self):
     return NaturalUser(
         id=self.mangopay_id,
         first_name=self._first_name,
         last_name=self._last_name,
         address=Address(
             address_line_1=self.address),  # TODO: add other address fields
         birthday=self._birthday_fmt(),
         nationality=self.nationality.code,
         country_of_residence=self.country_of_residence.code,
         occupation=self.occupation,
         income_range=self.income_range,
         proof_of_identity=None,
         proof_of_address=None,
         email=self.email,
     )
예제 #14
0
    def post(self, request, format=None):
        try:
            try:
                card_detail = UserCardDetails.objects.get(
                    user=request.user, currency__code=request.data['currency'])
                if card_detail.is_completed:
                    return Response({
                        'success': False,
                        'message':
                        'Card already registrated for given currency.',
                        'data': {}
                    })
                else:
                    card_registration = CardRegistration.get(
                        card_detail.mangopay_card_registration_id)

            except UserCardDetails.DoesNotExist:
                mangopay_user = NaturalUser.get(request.user.mangopay_user_id)
                currency = Currency.objects.get(code=request.data['currency'])
                card_registration = CardRegistration(user=mangopay_user,
                                                     currency=currency.code)
                card_registration.save()
                UserCardDetails.objects.create(user=request.user, currency=currency, \
                                                 mangopay_card_registration_id=card_registration.id)
            logger.info("Card successfully pre-registered for {} currency by {} user.".format(request.data['currency'],\
                                                                                                request.user.phone_no))
            return Response({
                'success': True,
                'message': 'Pre card registration successful.',
                'data': {
                    "AccessKey": card_registration.AccessKey,
                    "PreregistrationData":
                    card_registration.PreregistrationData,
                    "CardRegistrationURL":
                    card_registration.CardRegistrationURL
                }
            })
        except Exception as e:
            logger.exception(
                "{}, error occured while pre card registration.".format(e))
            return Response({
                'success': False,
                'message': 'Error occured while pre card registration.',
                'data': {}
            })
예제 #15
0
파일: user.py 프로젝트: zzsnicole/Bankey
 def update(self, instance, validated_data):
     mangopay_user = NaturalUser.get(instance.mangopay_user_id)
     print(">>>>>", mangopay_user.id)
     instance.email = validated_data.get('email', instance.email)
     instance.name = validated_data.get('name', instance.name)
     instance.birth_date = validated_data.get('birth_date',
                                              instance.birth_date)
     # instance.photo = validated_data.get('photo', instance.photo)
     instance.save()
     mangopay_user.email = instance.email
     mangopay_user.birthday = int(
         time.mktime(time.strptime(str(instance.birth_date), '%Y-%m-%d')))
     mangopay_user.first_name, mangopay_user.last_name = instance.name.split(
         ' ')
     print(instance.email, type(instance.email), int(time.mktime(time.strptime(str(instance.birth_date),'%Y-%m-%d'))),\
           type(int(time.mktime(time.strptime(str(instance.birth_date),'%Y-%m-%d')))))
     address_data = validated_data.pop('address')
     address = instance.address
     address.line1 = address_data.get('line1', address.line1)
     mangopay_user.address.address_line_1 = address_data.get(
         'line1', address.line1)
     address.line2 = address_data.get('line2', address.line2)
     mangopay_user.address.address_line_2 = address_data.get(
         'line2', address.line2)
     address.city = address_data.get('city', address.city)
     mangopay_user.address.city = address_data.get('city', address.city)
     address.state = address_data.get('state', address.state)
     mangopay_user.address.region = address_data.get('state', address.state)
     address.country = Country.objects.get(
         code=address_data.get('country', address.country))
     mangopay_user.address.country = address_data.get(
         'country', address.country)
     address.pin_code = address_data.get('pin_code', address.pin_code)
     mangopay_user.address.postal_code = address_data.get(
         'pin_code', address.pin_code)
     address.save()
     mangopay_user.save()
     return instance
예제 #16
0
 def post(self, request, format=None):
     try:
         try:
             currency = Currency.objects.get(code=request.data['currency'])
             UserWallet.objects.get(user=request.user,
                                    currency=currency,
                                    status='A')
             return Response({
                 'success': False,
                 'message': 'Wallet Exist.',
                 'data': {}
             })
         except UserWallet.DoesNotExist:
             mangopay_user = NaturalUser.get(request.user.mangopay_user_id)
             wallet = Wallet(owners=[mangopay_user],
                             description="Bankey wallet",
                             currency=currency.code)
             wallet.save()
             UserWallet.objects.create(user=request.user,
                                       currency=currency,
                                       mangopay_wallet_id=wallet.id)
             logger.info(
                 "{} wallet created successfully for {} currency.".format(
                     request.user.phone_no, currency.code))
             return Response({
                 'success': True,
                 'message': 'Successfully wallet created',
                 'data': {}
             })
     except Exception as e:
         logger.error("{}, error occured while creating wallet.".format(e))
         return Response({
             'success': False,
             'message': 'Error occured while creating wallet.',
             'data': {}
         })
예제 #17
0
파일: app.py 프로젝트: Owasana/info802
handler = APIRequest(sandbox=True)

client = Client('https://info802-ep-soap-server.azurewebsites.net/?wsdl')

from flask import Flask
app = Flask(__name__)

natural_user = NaturalUser(first_name='Victor',
                           last_name='Hugo',
                           address=Address(address_line_1='AddressLine1',
                                           address_line_2='AddressLine2',
                                           city='City',
                                           region='Region',
                                           postal_code='11222',
                                           country='FR'),
                           birthday=1300186358,
                           nationality='FR',
                           country_of_residence='FR',
                           occupation='Writer',
                           income_range='6',
                           proof_of_identity=None,
                           proof_of_address=None,
                           person_type='NATURAL',
                           email='*****@*****.**',
                           tag='custom tag')


@app.route("/")
def hello():
    result = client.service.say_hello('ok', 2)

    natural_user.save()
예제 #18
0
    def test_retrieve_specific_natural_user(self):
        self.mock_natural_user()

        self.register_mock({
            'method':
            responses.GET,
            'url':
            re.compile(r'' + settings.MANGOPAY_API_SANDBOX_URL +
                       settings.MANGOPAY_CLIENT_ID + '/users/\d+'),
            'body': {
                "FirstName": "Victor",
                "LastName": "Hugo",
                "Address": {
                    "AddressLine1": "AddressLine1",
                    "AddressLine2": "AddressLine2",
                    "City": "City",
                    "Region": "Region",
                    "PostalCode": "11222",
                    "Country": "FR"
                },
                "Birthday": today_timestamp,
                "Nationality": "FR",
                "CountryOfResidence": "FR",
                "Occupation": "Writer",
                "IncomeRange": 6,
                "PersonType": "NATURAL",
                "Email": "*****@*****.**",
                "Id": "1167495",
                "CreationDate": 1382605938,
                "KYCLevel": "LIGHT",
                "Tag": "custom tag",
                "UserCategory": "OWNER"
            },
            'status':
            200
        })

        params = {
            "first_name":
            "Victor",
            "last_name":
            "Hugo",
            "address":
            Address(address_line_1='AddressLine1',
                    address_line_2='AddressLine2',
                    city='City',
                    region='Region',
                    postal_code='11222',
                    country='FR'),
            "birthday":
            today,
            "nationality":
            "FR",
            "country_of_residence":
            "FR",
            "occupation":
            "Writer",
            "income_range":
            6,
            "proof_of_identity":
            None,
            "proof_of_address":
            None,
            "person_type":
            "NATURAL",
            "email":
            "*****@*****.**",
            "tag":
            "custom tag",
            "user_category":
            "OWNER"
        }
        user = NaturalUser(**params)
        user.save()
        self.assertIsNotNone(user.get_pk())

        retrieved_user = User.get(user.get_pk())

        self.assertIsNotNone(retrieved_user.get_pk())

        for key, value in params.items():
            self.assertEqual(getattr(retrieved_user, key), value)

        self.assertIsInstance(retrieved_user, User)
예제 #19
0
    def test_create_natural_user(self):
        self.mock_natural_user()

        self.register_mock({
            "method": responses.PUT,
            "url": re.compile(
                r'' + settings.MANGOPAY_API_SANDBOX_URL + settings.MANGOPAY_CLIENT_ID + '/users/natural/\d+'),
            "body": {
                "FirstName": "Victor",
                "LastName": "Claver",
                "Address": {
                    "AddressLine1": "AddressLine1",
                    "AddressLine2": "AddressLine2",
                    "City": "City",
                    "Region": "Region",
                    "PostalCode": "11222",
                    "Country": "FR"
                },
                "Birthday": today_timestamp,
                "Nationality": "FR",
                "CountryOfResidence": "FR",
                "Occupation": "Writer",
                "IncomeRange": 6,
                "PersonType": "NATURAL",
                "Email": "*****@*****.**",
                "Id": "1169419",
                "Tag": "custom tag",
                "CreationDate": 1383321421,
                "KYCLevel": "LIGHT"
            },
            "status": 200
        })

        params = {
            "first_name": "Victor",
            "last_name": "Hugo",
            "address": Address(address_line_1='AddressLine1', address_line_2='AddressLine2',
                               city='City', region='Region',
                               postal_code='11222', country='FR'),
            "birthday": today,
            "nationality": "FR",
            "country_of_residence": "FR",
            "occupation": "Writer",
            "income_range": 6,
            "proof_of_identity": None,
            "proof_of_address": None,
            "person_type": "NATURAL",
            "email": "*****@*****.**",
            "tag": "custom tag",
        }
        user = NaturalUser(**params)

        self.assertIsNone(user.get_pk())
        user.save()
        self.assertIsInstance(user, NaturalUser)

        for key, value in params.items():
            self.assertEqual(getattr(user, key), value)

        self.assertIsNotNone(user.get_pk())

        previous_pk = user.get_pk()

        user.last_name = 'Claver'
        user.save()

        self.assertEqual(previous_pk, user.get_pk())

        self.assertEqual(user.last_name, 'Claver')
예제 #20
0
파일: test.py 프로젝트: Owasana/info802
import mangopay
from mangopay.resources import User, NaturalUser
from mangopay.utils import Address

mangopay.client_id = 'info802-ep'
mangopay.apikey = 'MZ3zAhEH5nbYg8RPH6ekOZQdsAYqQJTvghh8fJkamzJtZnvEXu'

from mangopay.api import APIRequest

handler = APIRequest(sandbox=True)

natural_user = NaturalUser(
    first_name='Victor',
    last_name='Hugo',
    birthday=1300186358,
    nationality='FR',
    country_of_residence='FR',
    email='*****@*****.**',
)

natural_user.save()  # save the new user

print(natural_user.get_pk())  # retrieve the primary key
예제 #21
0
파일: models.py 프로젝트: ojr9/g39
 def get_docs_list(self):
     mpu = NaturalUser.get(self.mid)
     docs = mpu.documents.all()
     for d in docs:
         print(d)
     return docs
    def test_create_natural_user(self):
        self.mock_natural_user()

        self.register_mock({
            "method": responses.PUT,
            "url": re.compile(
                r'' + settings.MANGOPAY_API_SANDBOX_URL + settings.MANGOPAY_CLIENT_ID + '/users/natural/\d+'),
            "body": {
                "FirstName": "Victor",
                "LastName": "Claver",
                "Address": {
                    "AddressLine1": "AddressLine1",
                    "AddressLine2": "AddressLine2",
                    "City": "City",
                    "Region": "Region",
                    "PostalCode": "11222",
                    "Country": "FR"
                },
                "Birthday": today_timestamp,
                "Nationality": "FR",
                "CountryOfResidence": "FR",
                "Occupation": "Writer",
                "IncomeRange": 6,
                "PersonType": "NATURAL",
                "Email": "*****@*****.**",
                "Id": "1169419",
                "Tag": "custom tag",
                "CreationDate": 1383321421,
                "KYCLevel": "LIGHT"
            },
            "status": 200
        })

        params = {
            "first_name": "Victor",
            "last_name": "Hugo",
            "address": Address(address_line_1='AddressLine1', address_line_2='AddressLine2',
                               city='City', region='Region',
                               postal_code='11222', country='FR'),
            "birthday": today,
            "nationality": "FR",
            "country_of_residence": "FR",
            "occupation": "Writer",
            "income_range": 6,
            "proof_of_identity": None,
            "proof_of_address": None,
            "person_type": "NATURAL",
            "email": "*****@*****.**",
            "tag": "custom tag",
        }
        user = NaturalUser(**params)

        self.assertIsNone(user.get_pk())
        user.save()
        self.assertIsInstance(user, NaturalUser)

        for key, value in params.items():
            self.assertEqual(getattr(user, key), value)

        self.assertIsNotNone(user.get_pk())

        previous_pk = user.get_pk()

        user.last_name = 'Claver'
        user.save()

        self.assertEqual(previous_pk, user.get_pk())

        self.assertEqual(user.last_name, 'Claver')
예제 #23
0
    def test_retrieve_natural_user(self):
        self.mock_natural_user()

        self.register_mock([
            {
                'method': responses.GET,
                'url': settings.MANGOPAY_API_SANDBOX_URL + settings.MANGOPAY_CLIENT_ID + '/users/natural/1169419',
                'body': {
                    "FirstName": "Victor",
                    "LastName": "Hugo",
                    "Address": {
                        "AddressLine1": "AddressLine1",
                        "AddressLine2": "AddressLine2",
                        "City": "City",
                        "Region": "Region",
                        "PostalCode": "11222",
                        "Country": "FR"
                    },
                    "Birthday": today_timestamp,
                    "Nationality": "FR",
                    "CountryOfResidence": "FR",
                    "Occupation": "Writer",
                    "IncomeRange": 6,
                    "ProofOfIdentity": None,
                    "ProofOfAddress": None,
                    "PersonType": "NATURAL",
                    "Email": "*****@*****.**",
                    "Id": "1169419",
                    "Tag": "custom tag",
                    "CreationDate": 1383321421,
                    "KYCLevel": "LIGHT"
                },
                'status': 200
            },
            {
                'method': responses.GET,
                'url': settings.MANGOPAY_API_SANDBOX_URL + settings.MANGOPAY_CLIENT_ID + '/users/natural/1169420',
                'body': {"errors": []},
                'status': 404
            }])

        params = {
            "first_name": "Victor",
            "last_name": "Hugo",
            "address": Address(address_line_1='AddressLine1', address_line_2='AddressLine2',
                               city='City', region='Region',
                               postal_code='11222', country='FR'),
            "birthday": today,
            "nationality": "FR",
            "country_of_residence": "FR",
            "occupation": "Writer",
            "income_range": 6,
            "proof_of_identity": None,
            "proof_of_address": None,
            "person_type": "NATURAL",
            "email": "*****@*****.**",
            "tag": "custom tag",
        }
        user = NaturalUser(**params)
        user.save()

        self.assertRaises(NaturalUser.DoesNotExist, NaturalUser.get, int(user.get_pk()) + 1)

        self.assertIsNotNone(user.get_pk())

        user = NaturalUser.get(user.get_pk())

        self.assertIsNotNone(user.get_pk())

        for key, value in params.items():
            self.assertEqual(getattr(user, key), value)
    def test_retrieve_natural_user(self):
        self.mock_natural_user()

        self.register_mock([
            {
                'method': responses.GET,
                'url': settings.MANGOPAY_API_SANDBOX_URL + settings.MANGOPAY_CLIENT_ID + '/users/natural/1169419',
                'body': {
                    "FirstName": "Victor",
                    "LastName": "Hugo",
                    "Address": {
                        "AddressLine1": "AddressLine1",
                        "AddressLine2": "AddressLine2",
                        "City": "City",
                        "Region": "Region",
                        "PostalCode": "11222",
                        "Country": "FR"
                    },
                    "Birthday": today_timestamp,
                    "Nationality": "FR",
                    "CountryOfResidence": "FR",
                    "Occupation": "Writer",
                    "IncomeRange": 6,
                    "ProofOfIdentity": None,
                    "ProofOfAddress": None,
                    "PersonType": "NATURAL",
                    "Email": "*****@*****.**",
                    "Id": "1169419",
                    "Tag": "custom tag",
                    "CreationDate": 1383321421,
                    "KYCLevel": "LIGHT"
                },
                'status': 200
            },
            {
                'method': responses.GET,
                'url': settings.MANGOPAY_API_SANDBOX_URL + settings.MANGOPAY_CLIENT_ID + '/users/natural/1169420',
                'body': {"errors": []},
                'status': 404
            }])

        params = {
            "first_name": "Victor",
            "last_name": "Hugo",
            "address": Address(address_line_1='AddressLine1', address_line_2='AddressLine2',
                               city='City', region='Region',
                               postal_code='11222', country='FR'),
            "birthday": today,
            "nationality": "FR",
            "country_of_residence": "FR",
            "occupation": "Writer",
            "income_range": 6,
            "proof_of_identity": None,
            "proof_of_address": None,
            "person_type": "NATURAL",
            "email": "*****@*****.**",
            "tag": "custom tag",
        }
        user = NaturalUser(**params)
        user.save()

        self.assertRaises(NaturalUser.DoesNotExist, NaturalUser.get, int(user.get_pk()) + 1)

        self.assertIsNotNone(user.get_pk())

        user = NaturalUser.get(user.get_pk())

        self.assertIsNotNone(user.get_pk())

        for key, value in params.items():
            self.assertEqual(getattr(user, key), value)
예제 #25
0
    def test_retrieve_specific_natural_user(self):
        self.mock_natural_user()

        self.register_mock({
            'method': responses.GET,
            'url': re.compile(r'' + settings.MANGOPAY_API_SANDBOX_URL + settings.MANGOPAY_CLIENT_ID + '/users/\d+'),
            'body': {
                "FirstName": "Victor",
                "LastName": "Hugo",
                "Address": {
                    "AddressLine1": "AddressLine1",
                    "AddressLine2": "AddressLine2",
                    "City": "City",
                    "Region": "Region",
                    "PostalCode": "11222",
                    "Country": "FR"
                },
                "Birthday": today_timestamp,
                "Nationality": "FR",
                "CountryOfResidence": "FR",
                "Occupation": "Writer",
                "IncomeRange": 6,
                "PersonType": "NATURAL",
                "Email": "*****@*****.**",
                "Id": "1167495",
                "CreationDate": 1382605938,
                "KYCLevel": "LIGHT",
                "Tag": "custom tag"
            },
            'status': 200
        })

        params = {
            "first_name": "Victor",
            "last_name": "Hugo",
            "address": Address(address_line_1='AddressLine1', address_line_2='AddressLine2',
                               city='City', region='Region',
                               postal_code='11222', country='FR'),
            "birthday": today,
            "nationality": "FR",
            "country_of_residence": "FR",
            "occupation": "Writer",
            "income_range": 6,
            "proof_of_identity": None,
            "proof_of_address": None,
            "person_type": "NATURAL",
            "email": "*****@*****.**",
            "tag": "custom tag",
        }
        user = NaturalUser(**params)
        user.save()
        self.assertIsNotNone(user.get_pk())

        retrieved_user = User.get(user.get_pk())

        self.assertIsNotNone(retrieved_user.get_pk())

        for key, value in params.items():
            self.assertEqual(getattr(retrieved_user, key), value)

        self.assertIsInstance(retrieved_user, User)