~james-page/charm-helpers/amulet-switch-to-cs

« back to all changes in this revision

Viewing changes to tests/core/test_host.py

  • Committer: Matthew Bruzek
  • Date: 2016-06-02 16:00:32 UTC
  • mfrom: (579.1.5 charm-helpers)
  • Revision ID: matthew.bruzek@canonical.com-20160602160032-ddea8ewi8aj2fazk
[jamesbeedy] Added uid and gid specification functionality for adduser and addgroup.
[mbruzek] Added a newline to fix lint.

Show diffs side-by-side

added added

removed removed

Lines of Context:
533
533
 
534
534
        getpwnam.side_effect = [existing_user_pwnam, new_user_pwnam]
535
535
 
536
 
        result = host.adduser(username, password)
 
536
        result = host.adduser(username, password=password)
537
537
 
538
538
        self.assertEqual(result, new_user_pwnam)
539
539
        check_call.assert_called_with([
557
557
 
558
558
        getpwnam.return_value = existing_user_pwnam
559
559
 
560
 
        result = host.adduser(username, password)
 
560
        result = host.adduser(username, password=password)
561
561
 
562
562
        self.assertEqual(result, existing_user_pwnam)
563
563
        self.assertFalse(check_call.called)
578
578
        getpwnam.side_effect = [existing_user_pwnam, new_user_pwnam]
579
579
        getgrnam.side_effect = KeyError('group not found')
580
580
 
581
 
        result = host.adduser(username, password, shell=shell)
 
581
        result = host.adduser(username, password=password, shell=shell)
582
582
 
583
583
        self.assertEqual(result, new_user_pwnam)
584
584
        check_call.assert_called_with([
603
603
 
604
604
        getpwnam.side_effect = [existing_user_pwnam, new_user_pwnam]
605
605
 
606
 
        result = host.adduser(username, password,
 
606
        result = host.adduser(username, password=password,
607
607
                              primary_group='foo', secondary_groups=[
608
608
                                  'bar', 'qux',
609
609
                              ])
642
642
        getpwnam.assert_called_with(username)
643
643
 
644
644
    @patch('pwd.getpwnam')
 
645
    @patch('pwd.getpwuid')
 
646
    @patch('grp.getgrnam')
 
647
    @patch('subprocess.check_call')
 
648
    @patch.object(host, 'log')
 
649
    def test_add_user_uid(self, log, check_call, getgrnam, getpwuid, getpwnam):
 
650
        user_name = 'james'
 
651
        user_id = 1111
 
652
        uid_key_error = KeyError('user not found')
 
653
        getpwuid.side_effect = uid_key_error
 
654
        host.adduser(user_name, uid=user_id)
 
655
 
 
656
        check_call.assert_called_with([
 
657
            'useradd',
 
658
            '--uid',
 
659
            str(user_id),
 
660
            '--system',
 
661
            '-g',
 
662
            user_name,
 
663
            user_name
 
664
        ])
 
665
        getpwnam.assert_called_with(user_name)
 
666
        getpwuid.assert_called_with(user_id)
 
667
 
 
668
    @patch('grp.getgrnam')
 
669
    @patch('grp.getgrgid')
 
670
    @patch('subprocess.check_call')
 
671
    @patch.object(host, 'log')
 
672
    def test_add_group_gid(self, log, check_call, getgrgid, getgrnam):
 
673
        group_name = 'darkhorse'
 
674
        group_id = 1005
 
675
        existing_group_gid = KeyError('group not found')
 
676
        new_group_gid = 1006
 
677
        getgrgid.side_effect = [existing_group_gid, new_group_gid]
 
678
 
 
679
        host.add_group(group_name, gid=group_id)
 
680
        check_call.assert_called_with([
 
681
            'addgroup',
 
682
            '--gid',
 
683
            str(group_id),
 
684
            '--group',
 
685
            group_name
 
686
        ])
 
687
        getgrgid.assert_called_with(group_id)
 
688
        getgrnam.assert_called_with(group_name)
 
689
 
 
690
    @patch('pwd.getpwnam')
645
691
    def test_user_exists_true(self, getpwnam):
646
692
        getpwnam.side_effect = 'pw info'
647
693
        self.assertTrue(host.user_exists('bob'))