def test_return_double_value_if_data_item_is_found(self):
     """ Return double value if data item is found """
     valuep = ffi.new("double*", 1.)
     self.gwyfile._get_gwyitem_value.return_value = valuep[0]
     actual_return = self.gwyfile.get_gwyitem_double(
         self.gwyfile, self.item_key)
     self.assertEqual(actual_return, 1.)
 def test_return_int32_value_if_data_item_is_found(self):
     """ Return int32 value if data item is found """
     valuep = ffi.new("int32_t*", 1)
     self.gwyfile._get_gwyitem_value.return_value = valuep[0]
     actual_return = self.gwyfile.get_gwyitem_int32(self.gwyfile,
                                                    self.item_key)
     self.assertEqual(actual_return, 1)
 def test_return_string_value_if_data_item_is_found(self):
     """ Return data item string value if data item is found """
     cvalue = ffi.new("char[]", b'Title')
     self.gwyfile._get_gwyitem_value.return_value = cvalue
     actual_return = self.gwyfile.get_gwyitem_string(
         self.gwyfile, self.item_key)
     self.assertEqual(actual_return, 'Title')
 def test_return_True_if_data_item_value_is_True(self):
     """ Return True if data item value is True """
     truep = ffi.new("bool*", True)
     self.gwyfile._get_gwyitem_value.return_value = truep[0]
     actual_return = self.gwyfile.get_gwyitem_bool(self.gwyfile,
                                                   self.item_key)
     self.assertIs(actual_return, True)
 def test_return_False_if_data_item_value_is_False(self):
     """ Return Flase if data item value is False """
     falsep = ffi.new("bool*", False)
     self.gwyfile._get_gwyitem_value.return_value = falsep[0]
     actual_return = self.gwyfile.get_gwyitem_bool(self.gwyfile,
                                                   self.item_key)
     self.assertIs(actual_return, False)
    def test_check_top_level_object_of_c_gwyfile(self, mock_lib):
        """Raise GwyfileError exception if top-level object is not
        'GwyContainer' C string
        """

        c_gwyfile = Mock()
        test_name = ffi.new("char[]", b"non-GwyContainer")
        mock_lib.gwyfile_object_name.return_value = test_name
        self.assertRaises(GwyfileError, Gwyfile, c_gwyfile)
    def test_attribute_of_GwyFile_instance(self, mock_lib):
        """
        Create self.c_gwyfile attribute
        """

        c_gwyfile = Mock()
        test_name = ffi.new("char[]", b"GwyContainer")
        mock_lib.gwyfile_object_name.return_value = test_name
        test_instance = Gwyfile(c_gwyfile)
        self.assertIs(c_gwyfile, test_instance.c_gwyfile)
 def _side_effect(self, *args):
     """ First argument is GwyContainer
         Second argument is name of the file
         Third argument location of the error
     """
     self.assertEqual(args[0], self.gwycontainer)
     self.assertEqual(ffi.string(args[1]), self.filename.encode('utf-8'))
     self.assertEqual(ffi.typeof(args[2]),
                      ffi.typeof(ffi.new("GwyfileError**")))
     return ffi.cast("bool", True)
 def test_c_error_msg_is_non_NULL(self, mock_GwyfileError):
     """Test GwyfileError args if error message is not empty
     """
     c_error_msg = ffi.new("char[]", b'Test error message')
     GwyfileErrorCMsg(c_error_msg)
     mock_GwyfileError.assert_has_calls([call('Test error message')])