Coverage for mindsdb / integrations / handlers / mendeley_handler / tests / test_mendeley_handler.py: 0%

69 statements  

« prev     ^ index     » next       coverage.py v7.13.1, created at 2026-01-21 00:36 +0000

1import unittest 

2 

3from mindsdb.integrations.handlers.mendeley_handler.mendeley_handler import MendeleyHandler 

4from mindsdb.api.executor.data_types.response_type import RESPONSE_TYPE 

5 

6 

7class MendeleyHandlerTest(unittest.TestCase): 

8 @classmethod 

9 def setUpClass(cls): 

10 cls.kwargs = { 

11 "connection_data": {"client_id": 15253, "client_secret": "BxmSvbrRW5iYEIQR"} 

12 } 

13 cls.handler = MendeleyHandler("test_mendeley_handler", **cls.kwargs) 

14 

15 def test_0_connect(self): 

16 self.handler.connect() 

17 

18 def test_1_check_connection(self): 

19 self.handler.check_connection() 

20 

21 def test_2_select(self): 

22 query = "SELECT * FROM catalog_search_data WHERE doi='10.1111/joim.13091'" 

23 result = self.handler.native_query(query) 

24 assert result.type is RESPONSE_TYPE.TABLE 

25 

26 def test_3_select(self): 

27 query = "SELECT * FROM catalog_search_data WHERE id='af1a0408-7409-3a8b-ad91-8accd4f8849a'" 

28 result = self.handler.native_query(query) 

29 assert result.type is RESPONSE_TYPE.TABLE 

30 

31 def test_4_select(self): 

32 query = "SELECT * FROM catalog_search_data WHERE title='The American Mineralogist crystal structure database'" 

33 result = self.handler.native_query(query) 

34 assert result.type is RESPONSE_TYPE.TABLE 

35 

36 def test_5_select(self): 

37 query = "SELECT * FROM catalog_search_data WHERE id='8e86b541-84fd-30ef-9eed-e8c9af847ca3' AND doi='10.1093/ajcn/77.1.71'" 

38 result = self.handler.native_query(query) 

39 assert result.type is RESPONSE_TYPE.TABLE 

40 

41 def test_6_select(self): 

42 query = "SELECT * FROM catalog_search_data WHERE issn='15570878'" 

43 result = self.handler.native_query(query) 

44 assert result.type is RESPONSE_TYPE.TABLE 

45 

46 def test_7_select(self): 

47 query = "SELECT * FROM catalog_search_data WHERE source='American Journal of Clinical Nutrition'" 

48 result = self.handler.native_query(query) 

49 assert result.type is RESPONSE_TYPE.TABLE 

50 

51 def test_8_select(self): 

52 query = "SELECT * FROM catalog_search_data WHERE source='American Journal of Clinical Nutrition'AND id='4eeda257-8db4-3dad-80c8-6912356d3887'" 

53 result = self.handler.native_query(query) 

54 assert result.type is RESPONSE_TYPE.TABLE 

55 

56 def test_9_select(self): 

57 query = "SELECT * FROM catalog_search_data WHERE source='American Journal of Clinical Nutrition'AND max_year='2020'" 

58 result = self.handler.native_query(query) 

59 assert result.type is RESPONSE_TYPE.TABLE 

60 

61 def test_10_call_mendeley_api_invalid_method_name(self): 

62 with self.assertRaises(NotImplementedError): 

63 self.handler.call_mendeley_api("method1", None) 

64 

65 def test_11_select_invalid_condition_name(self): 

66 with self.assertRaises(NotImplementedError): 

67 query = "SELECT * FROM catalog_search_data WHERE name='American Journal of Clinical Nutrition'" 

68 self.handler.native_query(query) 

69 

70 def test_12_select_invalid_operator(self): 

71 with self.assertRaises(NotImplementedError): 

72 query = "SELECT * FROM catalog_search_data WHERE source>'American Journal of Clinical Nutrition'AND max_year='2020' " 

73 self.handler.native_query(query) 

74 

75 def test_13_select_invalid_column_name(self): 

76 with self.assertRaises(KeyError): 

77 query = "SELECT name FROM catalog_search_data WHERE source='American Journal of Clinical Nutrition'AND max_year='2020' " 

78 self.handler.native_query(query) 

79 

80 def test_14_get_columns(self): 

81 columns = self.handler.catalog_search_data.get_columns() 

82 

83 expected_columns = [ 

84 

85 'title', 

86 'type', 

87 'source', 

88 'year', 

89 'pmid', 

90 'sgr', 

91 'issn', 

92 'scopus', 

93 'doi', 

94 'pui', 

95 'authors', 

96 'keywords', 

97 'link', 

98 'id' 

99 ] 

100 

101 self.assertListEqual(columns, expected_columns) 

102 

103 def test_15_select_invalid_condition_name(self): 

104 with self.assertRaises(ValueError): 

105 query = "SELECT * FROM catalog_search_data" 

106 self.handler.native_query(query) 

107 

108 

109if __name__ == "__main__": 

110 unittest.main()