コード例 #1
0
ファイル: liveservertests.py プロジェクト: ajenta/oydiv-rpc
class UserLiveServerTestUser(unittest.TestCase):
    def setUp(self):  # NOQA
        self.host = TEST_HOST['hostname']
        self.user = TEST_HOST['user']
        self.admin_password = TEST_HOST['admin_password']
        self.prefix = TEST_HOST['prefix']
        self.ssl = TEST_HOST['ssl']
        self.member = PortalMember(
            name=random_ascii_letters(16),
            password=random_ascii_letters(),
            displayName='Automated Test User - to be deleted',
            extension=self.prefix + str(random_extension())[:6],
            emailAddress='*****@*****.**',
            description='Automated Test User - to be deleted',
        )

        self.admin = User(
            host=self.host,
            user=self.user,
            password=self.admin_password,
            api_type='admin',
            member=self.member,
            ssl=self.ssl
        )

        self.admin.create()

        self.u = User(
            host=self.host,
            user=self.member.name,
            password=self.member.password,
            api_type='user',
            ssl=self.ssl
        )

    def tearDown(self):  # NOQA
        try:
            self.admin.delete()
        except (Error, DoesNotExist):
            pass

    def test_endpoint_login_dict_type(self):
        login = self.u._endpoint_login_dict()
        self.assertIsInstance(login, dict)

    def test_endpoint_login_dict_keys(self):
        login = self.u._endpoint_login_dict()
        self.assertIn('portalAddress', login)
        self.assertIn('vmIdentity', login)
        self.assertIn('portalAccessKey', login)
        # TODO

    def test_call_vidyodesktop(self):
        getvideo = self.u.vidyodesktop_login_string()
        f = requests.get(getvideo)
        del f
        eid = requests.get('http://127.0.0.1:63457/?retrieve=eid').text.lstrip('eid=')
        self.u._user_service.linkEndpoint(eid)
        self.u._user_service.joinConference(self.u.entity_id())
        self.u._user_service.logOut()

    def test_my_account(self):
        acc = self.u._my_account()
        self.assertTrue(hasattr(acc, 'entityID'))

    def test_entity_type(self):
        u = User(
            self.host,
            user=self.member.name,
            password=self.member.password,
            api_type='user',
            ssl=self.ssl
        )
        u._user_service.getEntityByEntityID(u.entity_id())

    def test_portal_version(self):
        major, minor, micro, patch, db = self.u.portal_version_info()
        self.assertIn(major, (2, 3))
        self.assertIsInstance(major, int)
        self.assertIsInstance(minor, int)
        self.assertIsInstance(micro, int)

    def test_entity_id(self):
        self.assertIsInstance(self.u.entity_id(), int)

    def test_owns_room_own_room(self):
        self.assertTrue(self.admin.owns_room(self.u.entity_id()))

    def test_owns_room_other_false(self):
        self.assertFalse(self.admin.owns_room(0 - self.u.entity_id()))

    def test_user_doesnt_exist_deleted_raises(self):
        # The user has not been created at this point
        self.admin.delete()
        with self.assertRaises(Exception):  # suds throws an Exception() on 401
            self.u.entity_id()

    def test_user_doesnt_exist_yet_entity_idraises(self):
        self.admin.delete()
        self.member = PortalMember(
            name=random_ascii_letters(16),
            password=random_ascii_letters(),
            displayName='Automated Test User - to be deleted',
            extension=self.prefix + str(random_extension())[:6],
            emailAddress='*****@*****.**',
            description='Automated Test User - to be deleted',
        )

        self.admin = User(
            host=self.host,
            user=self.user,
            password=self.admin_password,
            api_type='admin',
            member=self.member,
            ssl=self.ssl
        )
        with self.assertRaises(DoesNotExist):
            self.admin.entity_id()

    def test_new_user_idle(self):
        """As the user is created moments ago,
        it should be idle as no VidyoClient can have registered yet"""
        self.assertEqual(self.u.status(), User.USER_OFFLINE)