Esempio n. 1
0
class AdminSystemTestBase(APITestCase):
    temp_admin_username = "******"
    temp_admin_password = "******"
    password = make_password(temp_admin_password)
    factory = PayunionFactory()

    def set_test_admin(self, is_super=False, permissions=None):
        test_admin = self.factory.create_system_admin(
            username=self.temp_admin_username,
            password=self.password,
            status=SYSTEM_USER_STATUS['USING'],
            permissions=permissions,
            is_super=is_super)
        sys_admin = SystemAdmin.objects.get(pk=test_admin.id)
        self.assertEqual(sys_admin.username, test_admin.username)
        self.assertEqual(sys_admin.name, test_admin.name)

    def set_login_status(self, is_super=False, permissions=None):
        self.set_test_admin(is_super=is_super, permissions=permissions)

        url = "/api/admin/system_admins/login"
        data = {
            "username": self.temp_admin_username,
            "password": self.temp_admin_password
        }
        resp = self.client.post(url, data=data, format='json')
        self.assertEqual(resp.status_code, status.HTTP_200_OK)
        self.assertEqual(resp.json().get("username"), self.temp_admin_username)
Esempio n. 2
0
    def create(cls):
        if cls.already_created():
            return

        with atomic():
            cls.area = Area.objects.order_by('-id').first()

            # 商户分类
            cls.merchant_category = None
            for p, children in cls.C.categories.items():
                parent = cls.factory.create_merchant_category(name=p)
                for c in children:
                    cls.merchant_category = cls.factory.create_merchant_category(
                        parent=parent, name=c)

            # 创建业务员
            for user in cls.C.marketers:
                cls.create_marketer(user)

            # 创建商户
            for user in cls.C.merchant_admins:
                cls.create_merchant(user)

            # 后台管理员
            cls.factory.create_system_admin(
                username='******',
                password=make_password('123456'),
                name='super',
                status=SYSTEM_USER_STATUS['USING'],
                is_super=True,
            )
Esempio n. 3
0
 def test_look_through_merchant_info(self):
     """ 查看商户信息 """
     # 微信小程序获取商户信息
     wechat_person_D_token = self.mock_merchant_admin_or_cashier_login_success(
         self.wechat_person_D)
     wechat_person_D_merchant_step = MerchantStep(self,
                                                  wechat_person_D_token)
     resp = wechat_person_D_merchant_step.me()
     mini_program_merchant_info = resp.json()
     # 后台管理员获取商户信息
     sysadmin_name = fake.name()
     sysadmin_password = fake.md5()
     self.factory.create_system_admin(
         username=sysadmin_name,
         is_super=True,
         password=make_password(sysadmin_password),
         status=config.SYSTEM_USER_STATUS.USING)
     sysadmin = LoginStep(self)
     sysadmin.login(username=sysadmin_name, password=sysadmin_password)
     sysadmin_merchant_manage_step = MerchantManageStep(self)
     resp = sysadmin_merchant_manage_step.get_merchant_info(
         self.merchatn_b.id)
     sysadmin_merchant_info = resp.json()
     self.assertEqual(mini_program_merchant_info['id'],
                      sysadmin_merchant_info['id'])
     self.assertEqual(mini_program_merchant_info['status'],
                      sysadmin_merchant_info['status'])
     self.assertEqual(mini_program_merchant_info['name'],
                      sysadmin_merchant_info['name'])
     self.assertEqual(mini_program_merchant_info['area'],
                      str(sysadmin_merchant_info['area']['id']))
     self.assertEqual(mini_program_merchant_info['category'],
                      sysadmin_merchant_info['category']['id'])
     self.assertEqual(mini_program_merchant_info['photo_url'],
                      sysadmin_merchant_info['photo_url'])
     self.assertEqual(mini_program_merchant_info['description'],
                      sysadmin_merchant_info['description'])
     self.assertEqual(mini_program_merchant_info['contact_phone'],
                      sysadmin_merchant_info['contact_phone'])
     self.assertEqual(mini_program_merchant_info['avatar_url'],
                      sysadmin_merchant_info['avatar_url'])
     self.assertEqual(mini_program_merchant_info['location_lon'],
                      sysadmin_merchant_info['location_lon'])
     self.assertEqual(mini_program_merchant_info['location_lat'],
                      sysadmin_merchant_info['location_lat'])
     self.assertEqual(mini_program_merchant_info['address'],
                      sysadmin_merchant_info['address'])
     self.assertEqual(mini_program_merchant_info['id_card_front_url'],
                      sysadmin_merchant_info['id_card_front_url'])
     self.assertEqual(mini_program_merchant_info['id_card_back_url'],
                      sysadmin_merchant_info['id_card_back_url'])
     self.assertEqual(mini_program_merchant_info['license_url'],
                      sysadmin_merchant_info['license_url'])
     self.assertEqual(mini_program_merchant_info['photo_url'],
                      sysadmin_merchant_info['photo_url'])
Esempio n. 4
0
 def setUpTestData(cls):
     from test.unittest.system_admin.base_data import create_base_data
     create_base_data()
     cls.fake_factory = PayunionFactory()
     cls.fake_factory.create_system_admin(
         username='******',
         is_super=True,
         password=make_password('abcde'),
         status=config.SYSTEM_USER_STATUS.USING)
     cls.inviter = cls.fake_factory.create_marketer(
         inviter_type=config.MARKETER_TYPES.MARKETER,
         status=config.SYSTEM_USER_STATUS.USING,
         account=cls.fake_factory.create_account())
Esempio n. 5
0
    def update(self, instance, validated_data):

        instance.name = validated_data.get('name', instance.name)
        instance.permissions = validated_data.get('permissions',
                                                  instance.permissions)
        instance.username = validated_data.get('username', instance.username)
        instance.status = validated_data.get('status', instance.status)
        password = validated_data.get('password', None)
        if password is not None:
            password = make_password(password)
            instance.password = password
        instance.save()

        return instance
Esempio n. 6
0
def create_system_admin(username, password, name):
    from common.models import SystemAdmin, LoginStats
    from common.password_backend import make_password
    from config import SYSTEM_USER_STATUS

    login_stats = LoginStats.objects.create(
        last_success_login=None,  # 上次成功登录时间
        last_success_ip=None,  # 上次成功登录IP
        last_failed_login=None,  # 上次失败登录时间
        last_failed_ip=None,  # 上次失败登录IP
        failed_login_count=0)
    SystemAdmin.objects.create(
        username=username,  # 用户名
        password=make_password(password),  # 密码
        name=name,  # 姓名
        status=SYSTEM_USER_STATUS.USING,  # 状态
        is_super=True,  # 是否是超级管理员
        permissions='',  # 权限
        login_stats=login_stats,  # 登录情况统计
    )
Esempio n. 7
0
 def create(self, validated_data):
     with transaction.atomic():
         validated_data['login_stats'] = LoginStats.objects.create()
         validated_data['password'] = make_password(
             validated_data['password'])
         return super().create(validated_data)