class ClassTest(unittest.TestCase):
    def setUp(self):
        self.mock_ao = MagicMock()
        self.mock_ao.clone.return_value = self.mock_ao
        self.testobj = ORapi(self.mock_ao)

    def test_str(self):
        assert 'ORapi' in str(self.testobj)

    def test_session_property(self):
        # The session property is defined in the base class but we
        # will unit test it here anyway, to make sure nobody changes
        # the base class in a way that breaks us.
        aw = self.testobj
        original_session = aw.session
        assert original_session
        # test the setter and getter
        fake_session = MagicMock()
        aw.session = fake_session
        assert aw.session is fake_session
        # put the real one back
        aw.session = original_session
        assert aw.session is original_session

    def test_get(self):
        hdrs = {'fake-header': 'fake-value'}
        expected = 'unit test get result'
        self.mock_ao.get.return_value = expected

        suffix = 'milk'
        actual = self.testobj.get(suffix, headers=hdrs)
        self.mock_ao.get.assert_called_with(suffix, headers=hdrs)
        assert actual == expected

    def test_search(self):
        hdrs = {'fake-header': 'fake-value'}
        expected = 'unit test search result'
        self.mock_ao.get.return_value = expected

        # the leading ? character is optional so try both.
        qstring = '?name=marmaduke'
        qs2 = qstring[1:]

        # default suffix should be "search"
        actual = self.testobj.search(pattern=qstring)
        self.mock_ao.get.assert_called_with('search' + qstring, headers=None)
        assert actual == expected
        actual = self.testobj.search(pattern=qs2, headers=hdrs)
        self.mock_ao.get.assert_called_with('search' + qstring, headers=hdrs)
        assert actual == expected

        # try a different suffix
        suffix = 'toraiocht'
        actual = self.testobj.search(pattern=qstring, suffix=suffix)
        self.mock_ao.get.assert_called_with(suffix + qstring, headers=None)
        assert actual == expected
        actual = self.testobj.search(pattern=qs2, headers=hdrs, suffix=suffix)
        self.mock_ao.get.assert_called_with(suffix + qstring, headers=hdrs)
        assert actual == expected
 def check64(self, testfile):
     with open(testfile, 'rb') as f:
         content_raw = f.read()
     content_64 = ORapi.b64encode_payload(testfile)
     # decode this result and check against the actual content.
     decoded = base64.b64decode(content_64)
     return decoded == content_raw
class ClassTest(unittest.TestCase):
    def setUp(self):
        self.mock_ao = MagicMock()
        self.mock_ao.clone.return_value = self.mock_ao
        self.testobj = ORapi(self.mock_ao)

    def test_str(self):
        assert 'ORapi' in str(self.testobj)

    def test_get(self):
        hdrs = {'fake-header': 'fake-value'}
        expected = 'unit test get result'
        self.mock_ao.get.return_value = expected

        suffix = 'milk'
        actual = self.testobj.get(suffix, headers=hdrs)
        self.mock_ao.get.assert_called_with(suffix, headers=hdrs)
        assert actual == expected

    def test_search(self):
        hdrs = {'fake-header': 'fake-value'}
        expected = 'unit test search result'
        self.mock_ao.get.return_value = expected

        # the leading ? character is optional so try both.
        qstring = '?name=marmaduke'
        qs2 = qstring[1:]

        # default suffix should be "search"
        actual = self.testobj.search(pattern=qstring)
        self.mock_ao.get.assert_called_with('search' + qstring, headers=None)
        assert actual == expected
        actual = self.testobj.search(pattern=qs2, headers=hdrs)
        self.mock_ao.get.assert_called_with('search' + qstring, headers=hdrs)
        assert actual == expected

        # try a different suffix
        suffix = 'toraiocht'
        actual = self.testobj.search(pattern=qstring, suffix=suffix)
        self.mock_ao.get.assert_called_with(suffix + qstring, headers=None)
        assert actual == expected
        actual = self.testobj.search(pattern=qs2, headers=hdrs, suffix=suffix)
        self.mock_ao.get.assert_called_with(suffix + qstring, headers=hdrs)
        assert actual == expected
Example #4
0
 def mkBase(display_name, logo_fname=None):
     assert display_name
     retval = {
         'displayName': display_name,
     }
     if logo_fname:
         payload = ORapi.b64encode_payload(logo_fname)
         retval['logo'] = {
             'name': os.path.basename(logo_fname),
             'file': payload
         }
     return retval
Example #5
0
 def setUp(self):
     # Several of the tests need a filename, its contents and
     # the base64 encoded version, so compute all of that up
     # front and store the data for later use. The actual
     # contents are not important so use any file that we know
     # will exist.
     self.testfile = 'setup.py'
     with open(self.testfile, 'rb') as f:
         self.content_raw = f.read()
     # check it's not empty.
     assert self.content_raw
     self.content_64 = ORapi.b64encode_payload(self.testfile)
 def setUp(self):
     self.mock_ao = MagicMock()
     self.mock_ao.clone.return_value = self.mock_ao
     self.testobj = ORapi(self.mock_ao)
Example #7
0
    def mkScript(name, description, platforms, execution_type,
                 payload=None,
                 payload_file=None,
                 parameters=None,
                 script_name=None,
                 install_timeout=0,
                 registry_path=None,
                 registry_value=None,
                 process_name=None,
                 service_name=None,
                 output_directory=None,
                 output_file=None):
        assert name
        assert description
        assert platforms
        assert execution_type
        if payload_file:
            assert not payload
            payload = ORapi.b64encode_payload(payload_file)
        assert payload
        if execution_type not in ('DOWNLOAD', 'EXE', 'MSI'):
            assert not output_directory
            assert not output_file
        if execution_type == 'COMMAND':
            payload_key = 'command'
            payload_value = payload
        else:
            assert script_name
            payload_key = 'attachment'
            payload_value = Category.mkAttachment(script_name, payload)

        # fields that are always present.
        retval = {
            'name': name,
            'description': description,
            'platforms': platforms,
            'executionType': execution_type,
            payload_key: payload_value
        }

        # optional ones.
        if parameters:
            retval['parameters'] = parameters

        if install_timeout:
            retval['installTimeout'] = install_timeout

        if 'WINDOWS' not in platforms:
            assert not registry_path
            assert not registry_value
        else:
            if registry_path:
                retval['registryPath'] = registry_path
                if registry_value:
                    retval['registryValue'] = registry_value

        if 'LINUX' not in platforms:
            assert not process_name
            assert not service_name
        else:
            if process_name:
                retval['processName'] = process_name
            if service_name:
                retval['serviceName'] = service_name

        return retval