Code Duplication    Length = 62-66 lines in 4 locations

backend/tracim_backend/tests/functional/test_user.py 4 locations

@@ 4606-4671 (lines=66) @@
4603
        res = res.json_body
4604
        assert res['email'] == '[email protected]'
4605
4606
    def test_api__set_user_email__err_400__admin_string_is_not_email(self):
4607
        dbsession = get_tm_session(self.session_factory, transaction.manager)
4608
        admin = dbsession.query(models.User) \
4609
            .filter(models.User.email == '[email protected]') \
4610
            .one()
4611
        uapi = UserApi(
4612
            current_user=admin,
4613
            session=dbsession,
4614
            config=self.app_config,
4615
        )
4616
        gapi = GroupApi(
4617
            current_user=admin,
4618
            session=dbsession,
4619
            config=self.app_config,
4620
        )
4621
        groups = [gapi.get_one_with_name('users')]
4622
        test_user = uapi.create_user(
4623
            email='[email protected]',
4624
            password='pass',
4625
            name='bob',
4626
            groups=groups,
4627
            timezone='Europe/Paris',
4628
            lang='fr',
4629
            do_save=True,
4630
            do_notify=False,
4631
        )
4632
        uapi.save(test_user)
4633
        transaction.commit()
4634
        user_id = int(test_user.user_id)
4635
4636
        self.testapp.authorization = (
4637
            'Basic',
4638
            (
4639
                '[email protected]',
4640
                '[email protected]'
4641
            )
4642
        )
4643
        # check before
4644
        res = self.testapp.get(
4645
            '/api/v2/users/{}'.format(user_id),
4646
            status=200
4647
        )
4648
        res = res.json_body
4649
        assert res['email'] == '[email protected]'
4650
4651
        # Set password
4652
        params = {
4653
            'email': 'thatisnotandemail',
4654
            'loggedin_user_password': '[email protected]',
4655
        }
4656
        res = self.testapp.put_json(
4657
            '/api/v2/users/{}/email'.format(user_id),
4658
            params=params,
4659
            status=400,
4660
        )
4661
        # TODO - G.M - 2018-09-10 - Handled by marshmallow schema
4662
        assert res.json_body
4663
        assert 'code' in res.json_body
4664
        assert res.json_body['code'] == error.GENERIC_SCHEMA_VALIDATION_ERROR  # nopep8
4665
        # Check After
4666
        res = self.testapp.get(
4667
            '/api/v2/users/{}'.format(user_id),
4668
            status=200
4669
        )
4670
        res = res.json_body
4671
        assert res['email'] == '[email protected]'
4672
4673
    def test_api__set_user_email__ok_200__user_itself(self):
4674
        dbsession = get_tm_session(self.session_factory, transaction.manager)
@@ 4540-4604 (lines=65) @@
4537
        res = res.json_body
4538
        assert res['email'] == '[email protected]'
4539
4540
    def test_api__set_user_email__err_403__admin_wrong_password(self):
4541
        dbsession = get_tm_session(self.session_factory, transaction.manager)
4542
        admin = dbsession.query(models.User) \
4543
            .filter(models.User.email == '[email protected]') \
4544
            .one()
4545
        uapi = UserApi(
4546
            current_user=admin,
4547
            session=dbsession,
4548
            config=self.app_config,
4549
        )
4550
        gapi = GroupApi(
4551
            current_user=admin,
4552
            session=dbsession,
4553
            config=self.app_config,
4554
        )
4555
        groups = [gapi.get_one_with_name('users')]
4556
        test_user = uapi.create_user(
4557
            email='[email protected]',
4558
            password='pass',
4559
            name='bob',
4560
            groups=groups,
4561
            timezone='Europe/Paris',
4562
            lang='fr',
4563
            do_save=True,
4564
            do_notify=False,
4565
        )
4566
        uapi.save(test_user)
4567
        transaction.commit()
4568
        user_id = int(test_user.user_id)
4569
4570
        self.testapp.authorization = (
4571
            'Basic',
4572
            (
4573
                '[email protected]',
4574
                '[email protected]'
4575
            )
4576
        )
4577
        # check before
4578
        res = self.testapp.get(
4579
            '/api/v2/users/{}'.format(user_id),
4580
            status=200
4581
        )
4582
        res = res.json_body
4583
        assert res['email'] == '[email protected]'
4584
4585
        # Set password
4586
        params = {
4587
            'email': '[email protected]',
4588
            'loggedin_user_password': 'badpassword',
4589
        }
4590
        res = self.testapp.put_json(
4591
            '/api/v2/users/{}/email'.format(user_id),
4592
            params=params,
4593
            status=403,
4594
        )
4595
        assert res.json_body
4596
        assert 'code' in res.json_body
4597
        assert res.json_body['code'] == error.WRONG_USER_PASSWORD  # nopep8
4598
        # Check After
4599
        res = self.testapp.get(
4600
            '/api/v2/users/{}'.format(user_id),
4601
            status=200
4602
        )
4603
        res = res.json_body
4604
        assert res['email'] == '[email protected]'
4605
4606
    def test_api__set_user_email__err_400__admin_string_is_not_email(self):
4607
        dbsession = get_tm_session(self.session_factory, transaction.manager)
@@ 4474-4538 (lines=65) @@
4471
        res = res.json_body
4472
        assert res['email'] == '[email protected]'
4473
4474
    def test_api__set_user_email__err_400__admin_same_email(self):
4475
        dbsession = get_tm_session(self.session_factory, transaction.manager)
4476
        admin = dbsession.query(models.User) \
4477
            .filter(models.User.email == '[email protected]') \
4478
            .one()
4479
        uapi = UserApi(
4480
            current_user=admin,
4481
            session=dbsession,
4482
            config=self.app_config,
4483
        )
4484
        gapi = GroupApi(
4485
            current_user=admin,
4486
            session=dbsession,
4487
            config=self.app_config,
4488
        )
4489
        groups = [gapi.get_one_with_name('users')]
4490
        test_user = uapi.create_user(
4491
            email='[email protected]',
4492
            password='pass',
4493
            name='bob',
4494
            groups=groups,
4495
            timezone='Europe/Paris',
4496
            lang='fr',
4497
            do_save=True,
4498
            do_notify=False,
4499
        )
4500
        uapi.save(test_user)
4501
        transaction.commit()
4502
        user_id = int(test_user.user_id)
4503
4504
        self.testapp.authorization = (
4505
            'Basic',
4506
            (
4507
                '[email protected]',
4508
                '[email protected]'
4509
            )
4510
        )
4511
        # check before
4512
        res = self.testapp.get(
4513
            '/api/v2/users/{}'.format(user_id),
4514
            status=200
4515
        )
4516
        res = res.json_body
4517
        assert res['email'] == '[email protected]'
4518
4519
        # Set password
4520
        params = {
4521
            'email': '[email protected]',
4522
            'loggedin_user_password': '[email protected]',
4523
        }
4524
        res = self.testapp.put_json(
4525
            '/api/v2/users/{}/email'.format(user_id),
4526
            params=params,
4527
            status=400,
4528
        )
4529
        assert res.json_body
4530
        assert 'code' in res.json_body
4531
        assert res.json_body['code'] == error.EMAIL_ALREADY_EXIST_IN_DB
4532
        # Check After
4533
        res = self.testapp.get(
4534
            '/api/v2/users/{}'.format(user_id),
4535
            status=200
4536
        )
4537
        res = res.json_body
4538
        assert res['email'] == '[email protected]'
4539
4540
    def test_api__set_user_email__err_403__admin_wrong_password(self):
4541
        dbsession = get_tm_session(self.session_factory, transaction.manager)
@@ 5352-5413 (lines=62) @@
5349
    """
5350
    fixtures = [BaseFixture]
5351
5352
    def test_api__set_user_profile__ok_200__admin(self):
5353
        dbsession = get_tm_session(self.session_factory, transaction.manager)
5354
        admin = dbsession.query(models.User) \
5355
            .filter(models.User.email == '[email protected]') \
5356
            .one()
5357
        uapi = UserApi(
5358
            current_user=admin,
5359
            session=dbsession,
5360
            config=self.app_config,
5361
        )
5362
        gapi = GroupApi(
5363
            current_user=admin,
5364
            session=dbsession,
5365
            config=self.app_config,
5366
        )
5367
        groups = [gapi.get_one_with_name('users')]
5368
        test_user = uapi.create_user(
5369
            email='[email protected]',
5370
            password='pass',
5371
            name='bob',
5372
            groups=groups,
5373
            timezone='Europe/Paris',
5374
            lang='fr',
5375
            do_save=True,
5376
            do_notify=False,
5377
        )
5378
        uapi.save(test_user)
5379
        transaction.commit()
5380
        user_id = int(test_user.user_id)
5381
5382
        self.testapp.authorization = (
5383
            'Basic',
5384
            (
5385
                '[email protected]',
5386
                '[email protected]'
5387
            )
5388
        )
5389
        # check before
5390
        res = self.testapp.get(
5391
            '/api/v2/users/{}'.format(user_id),
5392
            status=200
5393
        )
5394
        res = res.json_body
5395
        assert res['user_id'] == user_id
5396
        assert res['profile'] == 'users'
5397
        # Set params
5398
        params = {
5399
            'profile': 'administrators',
5400
        }
5401
        self.testapp.put_json(
5402
            '/api/v2/users/{}/profile'.format(user_id),
5403
            params=params,
5404
            status=204,
5405
        )
5406
        # Check After
5407
        res = self.testapp.get(
5408
            '/api/v2/users/{}'.format(user_id),
5409
            status=200
5410
        )
5411
        res = res.json_body
5412
        assert res['user_id'] == user_id
5413
        assert res['profile'] == 'administrators'
5414
5415
    def test_api__set_user_profile__err_400__admin_itself(self):
5416
        """