def test_check_service_not_specified(self):
     '''Test check_service() - not specified'''
     c = ClickReviewAccounts(self.test_name)
     c.check_service()
     r = c.click_report
     expected_counts = {'info': 0, 'warn': 0, 'error': 0}
     self.check_results(r, expected_counts)
 def test_check_manifest(self):
     '''Test check_manifest()'''
     data = json.loads('''{
       "translations": "my-app",
       "services": [
         {
           "name": "Example",
           "provider": "myapp.com_example",
           "description": "publish my photos in example.com",
           "auth": {
             "oauth2/web_server": {
               "ClientId": "foo",
               "ClientSecret": "bar",
               "UseSSL": false,
               "Scopes": ["one scope","and another"]
             }
           }
         },
         {
           "provider": "becool"
         }
       ],
       "plugin": {
           "name": "Example site",
           "icon": "example.png",
           "qml": "qml_files"
       }
     }''')
     self.set_test_account(self.default_appname, "accounts", data)
     c = ClickReviewAccounts(self.test_name)
     c.check_manifest()
     r = c.click_report
     expected_counts = {'info': 3, 'warn': 0, 'error': 0}
     self.check_results(r, expected_counts)
    def test_check_peer_hooks_provider_disallowed(self):
        '''Test check_peer_hooks() - disallowed (provider)'''
        c = ClickReviewAccounts(self.test_name)

        # create a new hooks database for our peer hooks tests
        tmp = dict()

        # add our hook
        tmp["account-provider"] = "foo.provider"

        # add any required peer hooks
        tmp["account-qml-plugin"] = "foo.qml_plugin"
        tmp["apparmor"] = "foo.apparmor"

        # add something not allowed
        tmp["nonexistent"] = "nonexistent-hook"

        c.manifest["hooks"][self.default_appname] = tmp
        self._update_test_manifest()

        # do the test
        c.check_peer_hooks(["account-provider"])
        r = c.click_report
        expected_counts = {'info': None, 'warn': 0, 'error': 1}
        self.check_results(r, expected_counts)
 def test_check_hooks_versions_deprecated_service(self):
     '''Test check_hooks_versions() - deprecated -service hook'''
     self.set_test_manifest("framework", "ubuntu-sdk-15.10")
     self.set_test_account(self.default_appname, "account-service", dict())
     c = ClickReviewAccounts(self.test_name)
     c.check_hooks_versions()
     r = c.click_report
     expected_counts = {'info': 0, 'warn': 1, 'error': 0}
     self.check_results(r, expected_counts)
 def test_check_hooks_versions_new(self):
     '''Test check_hooks_versions() - new hook'''
     self.set_test_manifest("framework", "ubuntu-sdk-15.04.1")
     self.set_test_account(self.default_appname, "accounts", dict())
     c = ClickReviewAccounts(self.test_name)
     c.check_hooks_versions()
     r = c.click_report
     expected_counts = {'info': 0, 'warn': 0, 'error': 0}
     self.check_results(r, expected_counts)
 def test_check_application_wrong_root(self):
     '''Test check_application() - wrong root'''
     xml = self._stub_application(root="wrongroot")
     self.set_test_account(self.default_appname, "account-application", xml)
     c = ClickReviewAccounts(self.test_name)
     c.check_application()
     r = c.click_report
     expected_counts = {'info': None, 'warn': 0, 'error': 1}
     self.check_results(r, expected_counts)
 def test_check_manifest_missing_services(self):
     '''Test check_manifest() - missing services'''
     data = json.loads('''{ "translations": "my-app" }''')
     self.set_test_account(self.default_appname, "accounts", data)
     c = ClickReviewAccounts(self.test_name)
     c.check_manifest()
     r = c.click_report
     expected_counts = {'info': 0, 'warn': 0, 'error': 1}
     self.check_results(r, expected_counts)
 def test_check_manifest_empty_service(self):
     '''Test check_manifest() - empty services'''
     data = json.loads('''{ "services": [{}] }''')
     self.set_test_account(self.default_appname, "accounts", data)
     c = ClickReviewAccounts(self.test_name)
     c.check_manifest()
     r = c.click_report
     expected_counts = {'info': 0, 'warn': 0, 'error': 1}
     self.check_results(r, expected_counts)
 def test_check_qml_plugin(self):
     '''Test check_qml_plugin()'''
     self.set_test_account(self.default_appname, "account-qml-plugin", True)
     xml = self._stub_provider()
     self.set_test_account(self.default_appname, "account-provider", xml)
     c = ClickReviewAccounts(self.test_name)
     c.check_qml_plugin()
     r = c.click_report
     expected_counts = {'info': 1, 'warn': 0, 'error': 0}
     self.check_results(r, expected_counts)
 def test_check_application_has_id(self):
     '''Test check_application() - has id'''
     xml = self._stub_application(
         id="%s_%s" % (self.test_manifest["name"], self.default_appname))
     self.set_test_account(self.default_appname, "account-application", xml)
     c = ClickReviewAccounts(self.test_name)
     c.check_application()
     r = c.click_report
     expected_counts = {'info': None, 'warn': 1, 'error': 0}
     self.check_results(r, expected_counts)
 def test_check_application(self):
     '''Test check_application()'''
     xml = self._stub_application()
     # print(etree.tostring(xml))
     self.set_test_account(self.default_appname, "account-application", xml)
     c = ClickReviewAccounts(self.test_name)
     c.check_application()
     r = c.click_report
     expected_counts = {'info': 4, 'warn': 0, 'error': 0}
     self.check_results(r, expected_counts)
 def test_check_provider_has_id(self):
     '''Test check_provider() - has id'''
     xml = self._stub_provider(
         id="%s_%s" % (self.test_manifest["name"], self.default_appname))
     self.set_test_account(self.default_appname, "account-provider", xml)
     self.set_test_account(self.default_appname, "account-qml-plugin", True)
     c = ClickReviewAccounts(self.test_name)
     c.check_provider()
     r = c.click_report
     expected_counts = {'info': 2, 'warn': 1, 'error': 0}
     self.check_results(r, expected_counts)
 def test_check_manifest_no_provider(self):
     '''Test check_manifest() - no provider'''
     data = json.loads('''{ "services": [{
       "name": "Example",
       "description": "Hello world"
     }] }''')
     self.set_test_account(self.default_appname, "accounts", data)
     c = ClickReviewAccounts(self.test_name)
     c.check_manifest()
     r = c.click_report
     expected_counts = {'info': 0, 'warn': 0, 'error': 1}
     self.check_results(r, expected_counts)
 def test_check_service_missing_provider(self):
     '''Test check_service() - missing provider'''
     xml = self._stub_service(do_subtree=False)
     service_name = etree.SubElement(xml, "name")
     service_name.text = "Foo"
     self.set_test_account(self.default_appname, "account-service", xml)
     xml = self._stub_application()
     self.set_test_account(self.default_appname, "account-application", xml)
     c = ClickReviewAccounts(self.test_name)
     c.check_service()
     r = c.click_report
     expected_counts = {'info': None, 'warn': 0, 'error': 1}
     self.check_results(r, expected_counts)
    def test_check_application_missing_service(self):
        '''Test check_application() - missing service'''
        xml = self._stub_application(do_subtree=False)

        services = etree.SubElement(xml, "services")
        elem1 = etree.SubElement(services, "somesubtag", id="element1")
        desc1 = etree.SubElement(elem1, "description")
        desc1.text = "elem1 description"

        self.set_test_account(self.default_appname, "account-application", xml)
        c = ClickReviewAccounts(self.test_name)
        c.check_application()
        r = c.click_report
        expected_counts = {'info': None, 'warn': 0, 'error': 1}
        self.check_results(r, expected_counts)
    def test_check_peer_hooks_provider_required(self):
        '''Test check_peer_hooks() - required (provider)'''
        c = ClickReviewAccounts(self.test_name)

        # create a new hooks database for our peer hooks tests
        tmp = dict()

        # add our hook
        tmp["account-provider"] = "foo.provider"

        # skip adding required hooks

        c.manifest["hooks"][self.default_appname] = tmp
        self._update_test_manifest()

        # do the test
        c.check_peer_hooks(["account-provider"])
        r = c.click_report
        expected_counts = {'info': None, 'warn': 0, 'error': 1}
        self.check_results(r, expected_counts)
    def test_check_peer_hooks_application(self):
        '''Test check_peer_hooks() - application'''
        c = ClickReviewAccounts(self.test_name)

        # create a new hooks database for our peer hooks tests
        tmp = dict()

        # add our hook
        tmp["account-application"] = "foo.application"

        # add any required peer hooks
        tmp["apparmor"] = "foo.apparmor"

        # update the manifest and test_manifest
        c.manifest["hooks"][self.default_appname] = tmp
        self._update_test_manifest()

        # do the test
        c.check_peer_hooks(["account-application"])
        r = c.click_report
        # We should end up with 8 info
        expected_counts = {'info': 2, 'warn': 0, 'error': 0}
        self.check_results(r, expected_counts)