Bump version number
[platform/upstream/libsecret.git] / library / tests / test-lookup-password.py
1 #!/usr/bin/env python
2
3 import unittest
4
5 from gi.repository import MockService as Mock
6 from gi.repository import Secret, GLib
7
8 STORE_SCHEMA = Secret.Schema.new("org.mock.Schema",
9         Secret.SchemaFlags.NONE,
10         {
11                 "number": Secret.SchemaAttributeType.INTEGER,
12                 "string": Secret.SchemaAttributeType.STRING,
13                 "even": Secret.SchemaAttributeType.BOOLEAN,
14         }
15 )
16
17 class TestLookup(unittest.TestCase):
18         def setUp(self):
19                 Mock.start("mock-service-normal.py")
20
21         def tearDown(self):
22                 Mock.stop()
23
24         def testSynchronous(self):
25                 password = Secret.password_lookup_sync (STORE_SCHEMA, { "number": "1", "even": "false" }, None)
26                 self.assertEqual("111", password)
27
28         def testSyncNotFound(self):
29                 password = Secret.password_lookup_sync (STORE_SCHEMA, { "number": "5", "even": "true" }, None)
30                 self.assertEqual(None, password)
31
32         def testAsynchronous(self):
33                 loop = GLib.MainLoop(None, False)
34
35                 def on_result_ready(source, result, unused):
36                         loop.quit()
37                         password = Secret.password_lookup_finish(result)
38                         self.assertEquals("222", password)
39
40                 Secret.password_lookup (STORE_SCHEMA, { "number": "2", "string": "two" },
41                                         None, on_result_ready, None)
42
43                 loop.run()
44
45         def testAsyncNotFound(self):
46                 loop = GLib.MainLoop(None, False)
47
48                 def on_result_ready(source, result, unused):
49                         loop.quit()
50                         password = Secret.password_lookup_finish(result)
51                         self.assertEquals(None, password)
52
53                 Secret.password_lookup (STORE_SCHEMA, { "number": "7", "string": "five" },
54                                         None, on_result_ready, None)
55
56                 loop.run()
57
58 if __name__ == '__main__':
59                 unittest.main()