コード例 #1
0
 def test_no_configured_endpoints(self):
     api_creator = ResourceCreator(self.api)
     session_id = None
     try:
         res = self.mitm.post('/autoconfig/register')
         self.assertTrue(res.status_code == 201)
         session_id = res.content.decode('utf-8')
         (dev_info, _) = api_creator.create_valid_resource('device')
         accept_info = {
             'status': 1,
             'device_id': dev_info['uri']
         }
         with GetStorage(self.api) as storage:
             storage.upload_all()
             res = self.api.post('/api/autoconf/{}'.format(session_id), json=accept_info)
             self.assertTrue(res.status_code == 406)
             expected_issues = {
                 'X-Critical': [
                     AutoConfIssues.pd_not_configured.value,
                     AutoConfIssues.rgc_not_configured.value,
                 ],
                 'X-Warnings': [
                     AutoConfIssues.no_ggl_login.value,
                     AutoConfIssues.auth_not_configured.value,
                 ]
             }
             self.assertListEqual(expected_issues['X-Critical'], json.loads(res.headers['X-Critical']))
             self.assertListEqual(expected_issues['X-Warnings'], json.loads(res.headers['X-Warnings']))
     finally:
         api_creator.remove_resources()
         if session_id is not None:
             self.mitm.delete('/autoconfig/{}/complete'.format(session_id))
コード例 #2
0
 def test_autoconfig_file_download(self):
     api_creator = ResourceCreator(self.api)
     with GetStorage(self.api) as storage:
         try:
             # this really isnt an api call but whatever
             res = self.api.get('/autoconfig/download')
             self.assertTrue(res.status_code == 406)
             # Setup default env without anything defined
             create_valid_configs(self, api_creator, auth=False)
             storage.upload_all()
             res = self.api.get('/autoconfig/download')
             self.assertTrue(res.status_code == 200)
             self.assertTrue(pd_host == res.content.decode('utf-8'))
             create_valid_configs(self, api_creator)
             res = self.api.get('/autoconfig/download')
             self.assertTrue(res.status_code == 200)
             auth = f"{email_base}:{pwd_base}"
             expected = f"{pd_host}\n{auth}"
             self.assertTrue(expected == res.content.decode('utf-8'))
         except Exception:
             raise
         finally:
             rgc_delete = self.api.delete('/api/autoconf/rgc')
             pd_delete = self.api.delete('/api/autoconf/pd')
             api_creator.remove_resources()
             self.assertTrue(rgc_delete.status_code == 200)
             self.assertTrue(pd_delete.status_code == 200)
コード例 #3
0
ファイル: test_wizard.py プロジェクト: wretchedbeaches/MAD
 def test_version_newer_avail(self):
     with GetStorage(get_connection_api()) as storage:
         package_downloader = APKWizard(storage.db_wrapper,
                                        storage.storage_manager)
         gplay_latest = (20201001, "0.123.4")
         latest_supported = {
             APKArch.arm64_v8a: {
                 "versionCode": 20201001,
                 "version": "0.123.4"
             }
         }
         autosearch_latest = {"version": "0.123.4", "url": 20201001}
         package_downloader.get_latest_version = MagicMock(
             return_value=latest_supported)
         storage.storage_manager.get_current_version = MagicMock(
             return_value="0.123.3")
         package_downloader.get_latest = MagicMock(
             return_value=autosearch_latest)
         GPlayConnector.get_latest_version = MagicMock(
             return_value=gplay_latest)
         wizard_latest = package_downloader.find_latest_pogo(
             APKArch.arm64_v8a)
         self.assertTrue(wizard_latest is not None)
         self.assertTrue(latest_supported[APKArch.arm64_v8a]["versionCode"]
                         == wizard_latest["version_code"])
         self.assertTrue(latest_supported[APKArch.arm64_v8a]["version"] ==
                         wizard_latest["version"])
コード例 #4
0
 def decorated(self, *args, **kwargs):
     api_creator = ResourceCreator(self.api)
     gacct = None
     session_id = None
     with GetStorage(self.api) as storage:
         try:
             storage.upload_all()
             create_valid_configs(self, api_creator)
             res = self.mitm.post('/autoconfig/register')
             self.assertTrue(res.status_code == 201)
             session_id = res.content.decode('utf-8')
             # Create Google Account
             gacc = {
                 "login_type": "google",
                 "username": "******",
                 "password": "******"
             }
             res = self.api.post('/api/pogoauth', json=gacc)
             gacct = res.headers['X-URI']
             self.assertTrue(res.status_code == 201)
             dev_payload = copy.copy(
                 global_variables.DEFAULT_OBJECTS['device']['payload'])
             dev_payload['account_id'] = gacct
             (dev_info,
              _) = api_creator.create_valid_resource('device',
                                                     payload=dev_payload)
             accept_info = {'status': 1, 'device_id': dev_info['uri']}
             res = self.api.post('/api/autoconf/{}'.format(session_id),
                                 json=accept_info)
             self.assertTrue(res.status_code == 200)
             res = self.mitm.get('/autoconfig/{}/status'.format(session_id))
             self.assertTrue(res.status_code == 200)
             (ss_info,
              _) = api_creator.create_valid_resource('devicesetting')
             func(self, session_id, dev_info, ss_info, api_creator, *args,
                  **kwargs)
         except Exception:
             raise
         finally:
             self.api.delete('/api/autoconf/rgc')
             self.api.delete('/api/autoconf/pd')
             api_creator.remove_resources()
             if session_id is not None:
                 self.mitm.delete(
                     '/autoconfig/{}/complete'.format(session_id))
             if gacct is not None:
                 self.api.delete(gacct)
コード例 #5
0
ファイル: test_wizard.py プロジェクト: wretchedbeaches/MAD
 def test_valid_version_from_gplay(self, get_apk_info):
     latest_gplay = {"version_code": 20200901, "version": "0.123.4"}
     autosearch_latest = {"version": "0.123.4", "url": 20201001}
     get_apk_info_resp = ("0.123.4", "com.ignored")
     get_apk_info.return_value = get_apk_info_resp
     with GetStorage(get_connection_api()) as storage:
         package_downloader = APKWizard(storage.db_wrapper,
                                        storage.storage_manager)
         package_downloader.find_latest_pogo = MagicMock(
             return_value=latest_gplay)
         storage.storage_manager.get_current_version = MagicMock(
             return_value="0.123.3")
         package_downloader.get_latest = MagicMock(
             return_value=autosearch_latest)
         GPlayConnector.download = MagicMock(
             return_value=TEST_GPLAY_RESPONSE)
         package_downloader.download_pogo(APKArch.arm64_v8a)
コード例 #6
0
 def test_lower_case(self):
     api_creator = ResourceCreator(self.api)
     with GetStorage(self.api):
         try:
             pd_email = 'UPPERcase'
             pd_update = {'user_id': pd_email}
             create_valid_configs(self, api_creator)
             res = self.api.patch('/api/autoconf/pd', json=pd_update)
             self.assertTrue(res.status_code == 200)
             res = self.api.get('/api/autoconf/pd')
             self.assertTrue(res.status_code == 200)
             self.assertTrue(res.json()['user_id'] == pd_email.lower())
         except Exception:
             raise
         finally:
             self.api.delete('/api/autoconf/rgc')
             self.api.delete('/api/autoconf/pd')
             api_creator.remove_resources()
コード例 #7
0
ファイル: test_wizard.py プロジェクト: marcb1387/MAD
 def test_invalid_version_from_gplay(self, get_apk_info, supported_pogo_version):
     supported_pogo_version.return_value = True
     get_apk_info.return_value = ("0.123.3", "com.ignored")
     latest_gplay = {
         "version_code": 20200901,
         "version": "0.123.4"
     }
     autosearch_latest = {
         "version": "0.123.4",
         "url": 20201001
     }
     with GetStorage(get_connection_api()) as storage:
         package_downloader = APKWizard(storage.db_wrapper, storage.storage_manager)
         package_downloader.find_latest_pogo = MagicMock(return_value=latest_gplay)
         storage.storage_manager.get_current_version = MagicMock(return_value=None)
         package_downloader.get_latest = MagicMock(return_value=autosearch_latest)
         GPlayConnector.download = MagicMock(return_value=TEST_GPLAY_RESPONSE)
         with self.assertRaises(InvalidDownload):
             package_downloader.download_pogo(APKArch.arm64_v8a)
コード例 #8
0
 def test_version_supported_but_not_gplay(self):
     with GetStorage(get_connection_api()) as storage:
         wizard = APKWizard(storage.db_wrapper, storage.storage_manager)
         gplay_latest = (20200901, "0.123.3")
         latest_supported = {
             APKArch.arm64_v8a: {
                 "versionCode": 20201001,
                 "version": "0.123.4"
             }
         }
         autosearch_latest = {"version": "0.123.4", "url": 20201001}
         wizard.get_latest_version = MagicMock(
             return_value=latest_supported)
         storage.storage_manager.get_current_version = MagicMock(
             return_value="0.123.3")
         wizard.get_latest = MagicMock(return_value=autosearch_latest)
         GPlayConnector.get_latest_version = MagicMock(
             return_value=gplay_latest)
         wizard_latest = wizard.find_latest_pogo(APKArch.arm64_v8a)
         self.assertTrue(wizard_latest is None)
コード例 #9
0
ファイル: test_wizard.py プロジェクト: marcb1387/MAD
 def test_gplay_between_current_and_supported(self, supported_pogo_version):
     supported_pogo_version.return_value = True
     with GetStorage(get_connection_api()) as storage:
         package_downloader = APKWizard(storage.db_wrapper, storage.storage_manager)
         gplay_latest = (20200901, "0.123.3")
         latest_supported = {
             APKArch.arm64_v8a: {
                 "versionCode": 20201001,
                 "version": "0.123.4"
             }
         }
         autosearch_latest = {
             "version": "0.123.4",
             "url": 20201001
         }
         package_downloader.get_latest_version = MagicMock(return_value=latest_supported)
         package_downloader.get_version_code = MagicMock(return_value=20200801)
         storage.storage_manager.get_current_version = MagicMock(return_value="0.123.2")
         package_downloader.get_latest = MagicMock(return_value=autosearch_latest)
         GPlayConnector.get_latest_version = MagicMock(return_value=gplay_latest)
         wizard_latest = package_downloader.find_latest_pogo(APKArch.arm64_v8a)
         self.assertTrue(wizard_latest is not None)
         self.assertTrue(gplay_latest[0] == wizard_latest["version_code"])
         self.assertTrue(gplay_latest[1] == wizard_latest["version"])