Merge lp:~mandel/ubuntuone-client/sdtool_start_method into lp:ubuntuone-client

Proposed by Manuel de la Peña
Status: Merged
Approved by: Natalia Bidart
Approved revision: 1066
Merged at revision: 1033
Proposed branch: lp:~mandel/ubuntuone-client/sdtool_start_method
Merge into: lp:ubuntuone-client
Diff against target: 473 lines (+91/-3)
2 files modified
tests/platform/windows/test_tools.py (+81/-2)
ubuntuone/platform/windows/tools.py (+10/-1)
To merge this branch: bzr merge lp:~mandel/ubuntuone-client/sdtool_start_method
Reviewer Review Type Date Requested Status
Natalia Bidart (community) Approve
Roberto Alsina (community) Approve
Review via email: mp+66448@code.launchpad.net

Commit message

Allows to start the syncdaemon by providing a start method to sdtool.

Description of the change

Allows to start the syncdaemon by providing a start method to sdtool. To tests please runthe following:

python C:\Python27\Scripts\u1trial --reactor=txnp tests\platform\windows\test_tools.py

In the method is correctly implemented you will see notepad being executed and close during the tests.

To post a comment you must log in.
Revision history for this message
Natalia Bidart (nataliabidart) wrote :

I'm getting this error:

===============================================================================
[ERROR]
Traceback (most recent call last):
  File "C:\Python27\lib\site-packages\twisted-11.0.0-py2.7-win32.egg\twisted\int
ernet\defer.py", line 1020, in _inlineCallbacks
    result = g.send(result)
  File "C:\Users\Test\src\review\tests\platform\windows\test_tools.py", line 111
3, in test_execution
    self.mocker.verify()
  File "build\bdist.win32\egg\mocker.py", line 645, in verify

exceptions.AssertionError: [Mocker] Unmet expectations:

=> _winreg.OpenKey(ANY, 'Software\\\\Ubuntu One')
 - Performed fewer times than expected.

=> _winreg.QueryValueEx(None, 'SyncDaemonInstallPath')
 - Performed fewer times than expected.

tests.platform.windows.test_tools.TestSyncDaemonTool.test_start
-------------------------------------------------------------------------------
Ran 51 tests in 2.265s

FAILED (errors=1, successes=50)

review: Needs Fixing
Revision history for this message
Natalia Bidart (nataliabidart) wrote :

I had the wrong PYTHONPATH set, tests actually pass. But can we please mock subcprocess to avoid having a notepad window being opened?

review: Needs Fixing
1065. By Manuel de la Peña

Mock subprocess so that we do not start a real app.

1066. By Manuel de la Peña

Merged with changes on linux.

Revision history for this message
Roberto Alsina (ralsina) wrote :

Code looks ok, tests pass.

review: Approve
Revision history for this message
Natalia Bidart (nataliabidart) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'tests/platform/windows/test_tools.py'
--- tests/platform/windows/test_tools.py 2011-06-23 16:33:20 +0000
+++ tests/platform/windows/test_tools.py 2011-06-30 14:22:30 +0000
@@ -24,7 +24,10 @@
24 PBServerFactory,24 PBServerFactory,
25 Root)25 Root)
2626
27from ubuntuone.platform.windows.tools import SyncDaemonTool27from ubuntuone.platform.windows.tools import (
28 SyncDaemonTool,
29 U1_REG_PATH,
30 SD_INSTALL_PATH)
28from ubuntuone.platform.windows.ipc import (31from ubuntuone.platform.windows.ipc import (
29 Config,32 Config,
30 Events,33 Events,
@@ -168,6 +171,7 @@
168 self.mocker.result(downloads)171 self.mocker.result(downloads)
169 self.mocker.replay()172 self.mocker.replay()
170 result = yield sdtool.get_current_downloads()173 result = yield sdtool.get_current_downloads()
174 self.mocker.restore()
171 self.mocker.verify()175 self.mocker.verify()
172 self.assertEqual(downloads, result)176 self.assertEqual(downloads, result)
173177
@@ -189,6 +193,7 @@
189 self.mocker.replay()193 self.mocker.replay()
190 self.mocker.result(uploads)194 self.mocker.result(uploads)
191 result = yield sdtool.get_current_uploads()195 result = yield sdtool.get_current_uploads()
196 self.mocker.restore()
192 self.mocker.verify()197 self.mocker.verify()
193 self.assertEqual(uploads, result)198 self.assertEqual(uploads, result)
194199
@@ -208,6 +213,7 @@
208 self.root.wait_for_nirvana(last_event_interval, ANY, ANY)213 self.root.wait_for_nirvana(last_event_interval, ANY, ANY)
209 self.mocker.replay()214 self.mocker.replay()
210 yield sdtool.wait_for_nirvana()215 yield sdtool.wait_for_nirvana()
216 self.mocker.restore()
211 self.mocker.verify()217 self.mocker.verify()
212218
213 d = self._connect()219 d = self._connect()
@@ -226,6 +232,7 @@
226 self.root.accept_share(share_id, ANY, ANY)232 self.root.accept_share(share_id, ANY, ANY)
227 self.mocker.replay()233 self.mocker.replay()
228 yield sdtool.accept_share(share_id)234 yield sdtool.accept_share(share_id)
235 self.mocker.restore()
229 self.mocker.verify()236 self.mocker.verify()
230 237
231 d = self._connect()238 d = self._connect()
@@ -244,6 +251,7 @@
244 self.root.reject_share(share_id, ANY, ANY)251 self.root.reject_share(share_id, ANY, ANY)
245 self.mocker.replay()252 self.mocker.replay()
246 yield sdtool.reject_share(share_id)253 yield sdtool.reject_share(share_id)
254 self.mocker.restore()
247 self.mocker.verify()255 self.mocker.verify()
248 256
249 d = self._connect()257 d = self._connect()
@@ -262,6 +270,7 @@
262 self.root.subscribe(share_id)270 self.root.subscribe(share_id)
263 self.mocker.replay()271 self.mocker.replay()
264 yield sdtool.subscribe_share(share_id)272 yield sdtool.subscribe_share(share_id)
273 self.mocker.restore()
265 self.mocker.verify()274 self.mocker.verify()
266 275
267 d = self._connect()276 d = self._connect()
@@ -280,6 +289,7 @@
280 self.root.unsubscribe(share_id)289 self.root.unsubscribe(share_id)
281 self.mocker.replay()290 self.mocker.replay()
282 yield sdtool.unsubscribe_share(share_id)291 yield sdtool.unsubscribe_share(share_id)
292 self.mocker.restore()
283 self.mocker.verify()293 self.mocker.verify()
284 294
285 d = self._connect()295 d = self._connect()
@@ -300,6 +310,7 @@
300 self.mocker.result(shares)310 self.mocker.result(shares)
301 self.mocker.replay()311 self.mocker.replay()
302 yield sdtool.get_shares()312 yield sdtool.get_shares()
313 self.mocker.restore()
303 self.mocker.verify()314 self.mocker.verify()
304315
305 d = self._connect()316 d = self._connect()
@@ -317,6 +328,7 @@
317 self.root.refresh_shares()328 self.root.refresh_shares()
318 self.mocker.replay()329 self.mocker.replay()
319 yield sdtool.refresh_shares()330 yield sdtool.refresh_shares()
331 self.mocker.restore()
320 self.mocker.verify()332 self.mocker.verify()
321 333
322 d = self._connect()334 d = self._connect()
@@ -338,6 +350,7 @@
338 self.root.create_share(path, username, name, access_level)350 self.root.create_share(path, username, name, access_level)
339 self.mocker.replay()351 self.mocker.replay()
340 yield sdtool.offer_share(path, username, name, access_level)352 yield sdtool.offer_share(path, username, name, access_level)
353 self.mocker.restore()
341 self.mocker.verify()354 self.mocker.verify()
342 355
343 d = self._connect()356 d = self._connect()
@@ -358,6 +371,7 @@
358 self.mocker.result(shares)371 self.mocker.result(shares)
359 self.mocker.replay()372 self.mocker.replay()
360 yield sdtool.list_shared()373 yield sdtool.list_shared()
374 self.mocker.restore()
361 self.mocker.verify()375 self.mocker.verify()
362 376
363 d = self._connect()377 d = self._connect()
@@ -376,6 +390,7 @@
376 self.root.create(path)390 self.root.create(path)
377 self.mocker.replay()391 self.mocker.replay()
378 yield sdtool.create_folder(path)392 yield sdtool.create_folder(path)
393 self.mocker.restore()
379 self.mocker.verify()394 self.mocker.verify()
380 395
381 d = self._connect()396 d = self._connect()
@@ -394,6 +409,7 @@
394 self.root.delete(folder_id)409 self.root.delete(folder_id)
395 self.mocker.replay()410 self.mocker.replay()
396 yield sdtool.delete_folder(folder_id)411 yield sdtool.delete_folder(folder_id)
412 self.mocker.restore()
397 self.mocker.verify()413 self.mocker.verify()
398 414
399 d = self._connect()415 d = self._connect()
@@ -412,6 +428,7 @@
412 self.root.subscribe(folder_id )428 self.root.subscribe(folder_id )
413 self.mocker.replay()429 self.mocker.replay()
414 yield sdtool.subscribe_folder(folder_id )430 yield sdtool.subscribe_folder(folder_id )
431 self.mocker.restore()
415 self.mocker.verify()432 self.mocker.verify()
416 433
417 d = self._connect()434 d = self._connect()
@@ -430,6 +447,7 @@
430 self.root.unsubscribe(folder_id)447 self.root.unsubscribe(folder_id)
431 self.mocker.replay()448 self.mocker.replay()
432 yield sdtool.unsubscribe_folder(folder_id)449 yield sdtool.unsubscribe_folder(folder_id)
450 self.mocker.restore()
433 self.mocker.verify()451 self.mocker.verify()
434 452
435 d = self._connect()453 d = self._connect()
@@ -450,6 +468,7 @@
450 self.mocker.result(folders)468 self.mocker.result(folders)
451 self.mocker.replay()469 self.mocker.replay()
452 yield sdtool.get_folders()470 yield sdtool.get_folders()
471 self.mocker.restore()
453 self.mocker.verify()472 self.mocker.verify()
454 473
455 d = self._connect()474 d = self._connect()
@@ -468,6 +487,7 @@
468 self.root.get_info(path)487 self.root.get_info(path)
469 self.mocker.replay()488 self.mocker.replay()
470 yield client.get_folder_info(path)489 yield client.get_folder_info(path)
490 self.mocker.restore()
471 self.mocker.verify()491 self.mocker.verify()
472 492
473 d = self._connect()493 d = self._connect()
@@ -486,6 +506,7 @@
486 self.root.get_metadata(path)506 self.root.get_metadata(path)
487 self.mocker.replay()507 self.mocker.replay()
488 yield sdtool.get_metadata(path)508 yield sdtool.get_metadata(path)
509 self.mocker.restore()
489 self.mocker.verify()510 self.mocker.verify()
490511
491 d = self._connect()512 d = self._connect()
@@ -510,6 +531,7 @@
510 self.root.change_public_access(share_id, node_id, is_public)531 self.root.change_public_access(share_id, node_id, is_public)
511 self.mocker.replay()532 self.mocker.replay()
512 yield sdtool.change_public_access(path, is_public)533 yield sdtool.change_public_access(path, is_public)
534 self.mocker.restore()
513 self.mocker.verify()535 self.mocker.verify()
514 536
515 d = self._connect()537 d = self._connect()
@@ -529,6 +551,7 @@
529 self.root.quit(None, None)551 self.root.quit(None, None)
530 self.mocker.replay()552 self.mocker.replay()
531 yield sdtool.quit()553 yield sdtool.quit()
554 self.mocker.restore()
532 self.mocker.verify()555 self.mocker.verify()
533556
534 d = self._connect()557 d = self._connect()
@@ -546,6 +569,7 @@
546 self.root.connect()569 self.root.connect()
547 self.mocker.replay()570 self.mocker.replay()
548 yield sdtool.connect()571 yield sdtool.connect()
572 self.mocker.restore()
549 self.mocker.verify()573 self.mocker.verify()
550574
551 d = self._connect()575 d = self._connect()
@@ -563,6 +587,7 @@
563 self.root.disconnect()587 self.root.disconnect()
564 self.mocker.replay()588 self.mocker.replay()
565 yield sdtool.disconnect()589 yield sdtool.disconnect()
590 self.mocker.restore()
566 self.mocker.verify()591 self.mocker.verify()
567592
568 d = self._connect()593 d = self._connect()
@@ -582,6 +607,7 @@
582 self.mocker.result(status)607 self.mocker.result(status)
583 self.mocker.replay()608 self.mocker.replay()
584 yield sdtool.get_status()609 yield sdtool.get_status()
610 self.mocker.restore()
585 self.mocker.verify()611 self.mocker.verify()
586612
587 d = self._connect()613 d = self._connect()
@@ -600,6 +626,7 @@
600 self.mocker.result({})626 self.mocker.result({})
601 self.mocker.replay()627 self.mocker.replay()
602 yield sdtool.waiting()628 yield sdtool.waiting()
629 self.mocker.restore()
603 self.mocker.verify()630 self.mocker.verify()
604631
605 d = self._connect()632 d = self._connect()
@@ -617,6 +644,7 @@
617 self.root.waiting_metadata()644 self.root.waiting_metadata()
618 self.mocker.replay()645 self.mocker.replay()
619 yield sdtool.waiting_metadata()646 yield sdtool.waiting_metadata()
647 self.mocker.restore()
620 self.mocker.verify()648 self.mocker.verify()
621649
622 d = self._connect()650 d = self._connect()
@@ -634,6 +662,7 @@
634 self.root.waiting_content()662 self.root.waiting_content()
635 self.mocker.replay()663 self.mocker.replay()
636 yield sdtool.waiting_content()664 yield sdtool.waiting_content()
665 self.mocker.restore()
637 self.mocker.verify()666 self.mocker.verify()
638667
639 d = self._connect()668 d = self._connect()
@@ -651,6 +680,7 @@
651 self.root.get_throttling_limits(ANY, ANY)680 self.root.get_throttling_limits(ANY, ANY)
652 self.mocker.replay()681 self.mocker.replay()
653 yield sdtool.get_throttling_limits()682 yield sdtool.get_throttling_limits()
683 self.mocker.restore()
654 self.mocker.verify()684 self.mocker.verify()
655 685
656 d = self._connect()686 d = self._connect()
@@ -670,6 +700,7 @@
670 self.root.set_throttling_limits(download, upload, ANY, ANY)700 self.root.set_throttling_limits(download, upload, ANY, ANY)
671 self.mocker.replay()701 self.mocker.replay()
672 yield sdtool.set_throttling_limits(download, upload)702 yield sdtool.set_throttling_limits(download, upload)
703 self.mocker.restore()
673 self.mocker.verify()704 self.mocker.verify()
674 705
675 d = self._connect()706 d = self._connect()
@@ -688,6 +719,7 @@
688 self.mocker.result(True)719 self.mocker.result(True)
689 self.mocker.replay()720 self.mocker.replay()
690 result = yield sdtool.is_throttling_enabled()721 result = yield sdtool.is_throttling_enabled()
722 self.mocker.restore()
691 self.mocker.verify()723 self.mocker.verify()
692 self.assertTrue(result)724 self.assertTrue(result)
693725
@@ -706,6 +738,7 @@
706 self.root.enable_bandwidth_throttling(ANY, ANY)738 self.root.enable_bandwidth_throttling(ANY, ANY)
707 self.mocker.replay()739 self.mocker.replay()
708 yield sdtool.enable_throttling(True)740 yield sdtool.enable_throttling(True)
741 self.mocker.restore()
709 self.mocker.verify()742 self.mocker.verify()
710743
711 d = self._connect()744 d = self._connect()
@@ -723,6 +756,7 @@
723 self.root.disable_bandwidth_throttling(ANY, ANY)756 self.root.disable_bandwidth_throttling(ANY, ANY)
724 self.mocker.replay()757 self.mocker.replay()
725 yield sdtool.enable_throttling(False)758 yield sdtool.enable_throttling(False)
759 self.mocker.restore()
726 self.mocker.verify()760 self.mocker.verify()
727 761
728 d = self._connect()762 d = self._connect()
@@ -741,6 +775,7 @@
741 self.mocker.replay()775 self.mocker.replay()
742 self.mocker.result(True)776 self.mocker.result(True)
743 result = yield sdtool.is_autoconnect_enabled()777 result = yield sdtool.is_autoconnect_enabled()
778 self.mocker.restore()
744 self.mocker.verify()779 self.mocker.verify()
745 self.assertTrue(result)780 self.assertTrue(result)
746 781
@@ -760,6 +795,7 @@
760 self.root.set_autoconnect_enabled(enabled)795 self.root.set_autoconnect_enabled(enabled)
761 self.mocker.replay()796 self.mocker.replay()
762 yield sdtool.enable_autoconnect(enabled)797 yield sdtool.enable_autoconnect(enabled)
798 self.mocker.restore()
763 self.mocker.verify()799 self.mocker.verify()
764 800
765 d = self._connect()801 d = self._connect()
@@ -778,6 +814,7 @@
778 self.mocker.result(True)814 self.mocker.result(True)
779 self.mocker.replay()815 self.mocker.replay()
780 result = yield sdtool.is_show_all_notifications_enabled()816 result = yield sdtool.is_show_all_notifications_enabled()
817 self.mocker.restore()
781 self.mocker.verify()818 self.mocker.verify()
782 self.assertTrue(result)819 self.assertTrue(result)
783 820
@@ -796,6 +833,7 @@
796 self.root.enable_show_all_notifications()833 self.root.enable_show_all_notifications()
797 self.mocker.replay()834 self.mocker.replay()
798 yield sdtool.enable_show_all_notifications(True)835 yield sdtool.enable_show_all_notifications(True)
836 self.mocker.restore()
799 self.mocker.verify()837 self.mocker.verify()
800 838
801 d = self._connect()839 d = self._connect()
@@ -813,6 +851,7 @@
813 self.root.disable_show_all_notifications()851 self.root.disable_show_all_notifications()
814 self.mocker.replay()852 self.mocker.replay()
815 yield sdtool.enable_show_all_notifications(False)853 yield sdtool.enable_show_all_notifications(False)
854 self.mocker.restore()
816 self.mocker.verify()855 self.mocker.verify()
817 856
818 d = self._connect()857 d = self._connect()
@@ -831,6 +870,7 @@
831 self.mocker.result(True)870 self.mocker.result(True)
832 self.mocker.replay()871 self.mocker.replay()
833 result = yield sdtool.is_share_autosubscribe_enabled()872 result = yield sdtool.is_share_autosubscribe_enabled()
873 self.mocker.restore()
834 self.mocker.verify()874 self.mocker.verify()
835 self.assertTrue(result)875 self.assertTrue(result)
836 876
@@ -849,6 +889,7 @@
849 self.root.enable_share_autosubscribe()889 self.root.enable_share_autosubscribe()
850 self.mocker.replay()890 self.mocker.replay()
851 yield sdtool.enable_share_autosubscribe(True)891 yield sdtool.enable_share_autosubscribe(True)
892 self.mocker.restore()
852 self.mocker.verify()893 self.mocker.verify()
853 894
854 d = self._connect()895 d = self._connect()
@@ -866,6 +907,7 @@
866 self.root.disable_share_autosubscribe()907 self.root.disable_share_autosubscribe()
867 self.mocker.replay()908 self.mocker.replay()
868 yield sdtool.enable_share_autosubscribe(False)909 yield sdtool.enable_share_autosubscribe(False)
910 self.mocker.restore()
869 self.mocker.verify()911 self.mocker.verify()
870 912
871 d = self._connect()913 d = self._connect()
@@ -884,6 +926,7 @@
884 self.mocker.result(True)926 self.mocker.result(True)
885 self.mocker.replay()927 self.mocker.replay()
886 result = yield sdtool.is_udf_autosubscribe_enabled()928 result = yield sdtool.is_udf_autosubscribe_enabled()
929 self.mocker.restore()
887 self.mocker.verify()930 self.mocker.verify()
888 self.assertTrue(result)931 self.assertTrue(result)
889 932
@@ -902,6 +945,7 @@
902 self.root.enable_udf_autosubscribe()945 self.root.enable_udf_autosubscribe()
903 self.mocker.replay()946 self.mocker.replay()
904 yield sdtool.enable_udf_autosubscribe(True)947 yield sdtool.enable_udf_autosubscribe(True)
948 self.mocker.restore()
905 self.mocker.verify()949 self.mocker.verify()
906 950
907 d = self._connect()951 d = self._connect()
@@ -919,6 +963,7 @@
919 self.root.disable_udf_autosubscribe()963 self.root.disable_udf_autosubscribe()
920 self.mocker.replay()964 self.mocker.replay()
921 yield sdtool.enable_udf_autosubscribe(False)965 yield sdtool.enable_udf_autosubscribe(False)
966 self.mocker.restore()
922 self.mocker.verify()967 self.mocker.verify()
923 968
924 d = self._connect()969 d = self._connect()
@@ -936,6 +981,7 @@
936 self.root.refresh_volumes()981 self.root.refresh_volumes()
937 self.mocker.replay()982 self.mocker.replay()
938 yield sdtool.refresh_volumes()983 yield sdtool.refresh_volumes()
984 self.mocker.restore()
939 self.mocker.verify()985 self.mocker.verify()
940 986
941 d = self._connect()987 d = self._connect()
@@ -954,6 +1000,7 @@
954 self.root.rescan_from_scratch(volume_id)1000 self.root.rescan_from_scratch(volume_id)
955 self.mocker.replay()1001 self.mocker.replay()
956 yield sdtool.rescan_from_scratch(volume_id)1002 yield sdtool.rescan_from_scratch(volume_id)
1003 self.mocker.restore()
957 self.mocker.verify()1004 self.mocker.verify()
9581005
959 d = self._connect()1006 d = self._connect()
@@ -973,6 +1020,7 @@
973 self.mocker.result(dirty_nodes)1020 self.mocker.result(dirty_nodes)
974 self.mocker.replay()1021 self.mocker.replay()
975 result = yield sdtool.get_dirty_nodes()1022 result = yield sdtool.get_dirty_nodes()
1023 self.mocker.restore()
976 self.mocker.verify()1024 self.mocker.verify()
977 self.assertEqual(dirty_nodes, result)1025 self.assertEqual(dirty_nodes, result)
9781026
@@ -993,6 +1041,7 @@
993 self.mocker.result(root)1041 self.mocker.result(root)
994 self.mocker.replay()1042 self.mocker.replay()
995 result = yield sdtool.get_root_dir()1043 result = yield sdtool.get_root_dir()
1044 self.mocker.restore()
996 self.mocker.verify()1045 self.mocker.verify()
997 self.assertEqual(root, result)1046 self.assertEqual(root, result)
9981047
@@ -1013,6 +1062,7 @@
1013 self.mocker.result(shares_dir)1062 self.mocker.result(shares_dir)
1014 self.mocker.replay()1063 self.mocker.replay()
1015 result = yield sdtool.get_shares_dir()1064 result = yield sdtool.get_shares_dir()
1065 self.mocker.restore()
1016 self.mocker.verify()1066 self.mocker.verify()
1017 self.assertEqual(shares_dir, result)1067 self.assertEqual(shares_dir, result)
10181068
@@ -1033,6 +1083,7 @@
1033 self.mocker.result(link)1083 self.mocker.result(link)
1034 self.mocker.replay()1084 self.mocker.replay()
1035 result = yield sdtool.get_shares_dir_link()1085 result = yield sdtool.get_shares_dir_link()
1086 self.mocker.restore()
1036 self.mocker.verify()1087 self.mocker.verify()
1037 self.assertEqual(link, result)1088 self.assertEqual(link, result)
10381089
@@ -1040,4 +1091,32 @@
1040 # pylint: disable=E11011091 # pylint: disable=E1101
1041 d.addCallback(test_execution)1092 d.addCallback(test_execution)
1042 # pylint: enable=E11011093 # pylint: enable=E1101
1043 return d 1094 return d
1095
1096 def test_start(self):
1097 """Test that we can indeed start the process."""
1098 cmd = 'notepad'
1099
1100 @defer.inlineCallbacks
1101 def test_execution(sdtool):
1102 """Actual test."""
1103 open_key = self.mocker.replace('_winreg.OpenKey')
1104 query_value = self.mocker.replace('_winreg.QueryValueEx')
1105 subprocess = self.mocker.replace('subprocess.Popen')
1106 # set the expectations
1107 open_key(ANY, U1_REG_PATH)
1108 query_value(None, SD_INSTALL_PATH)
1109 self.mocker.result([cmd,])
1110 subprocess([cmd,])
1111 self.mocker.result(cmd)
1112 self.mocker.replay()
1113 process = yield sdtool.start()
1114 self.mocker.restore()
1115 self.mocker.verify()
1116 self.assertEqual(cmd, process)
1117
1118 d = self._connect()
1119 # pylint: disable=E1101
1120 d.addCallback(test_execution)
1121 # pylint: enable=E1101
1122 return d
1044\ No newline at end of file1123\ No newline at end of file
10451124
=== modified file 'ubuntuone/platform/windows/tools.py'
--- ubuntuone/platform/windows/tools.py 2011-06-27 15:57:03 +0000
+++ ubuntuone/platform/windows/tools.py 2011-06-30 14:22:30 +0000
@@ -21,17 +21,21 @@
2121
22import logging22import logging
23import time23import time
24import subprocess
24import sys25import sys
2526
26from win32api import GetUserNameEx, CloseHandle27from win32api import GetUserNameEx, CloseHandle
27from win32con import NameSamCompatible28from win32con import NameSamCompatible
28from win32file import CreateFile, GENERIC_READ, FILE_SHARE_READ, OPEN_EXISTING29from win32file import CreateFile, GENERIC_READ, FILE_SHARE_READ, OPEN_EXISTING
29from twisted.internet import defer, reactor30from twisted.internet import defer, reactor
31from _winreg import OpenKey, HKEY_LOCAL_MACHINE, QueryValueEx
3032
31from ubuntuone.syncdaemon.config import get_user_config33from ubuntuone.syncdaemon.config import get_user_config
32from ubuntuone.platform.windows.ipc import NAMED_PIPE_URL34from ubuntuone.platform.windows.ipc import NAMED_PIPE_URL
33from ubuntuone.platform.windows.ipc_client import UbuntuOneClient35from ubuntuone.platform.windows.ipc_client import UbuntuOneClient
3436
37U1_REG_PATH = r'Software\\Ubuntu One'
38SD_INSTALL_PATH = 'SyncDaemonInstallPath'
3539
36def is_running(bus=None):40def is_running(bus=None):
37 """Check if there is a syncdaemon instance running.41 """Check if there is a syncdaemon instance running.
@@ -406,7 +410,12 @@
406 def start(self):410 def start(self):
407 """Start syncdaemon if it's not running."""411 """Start syncdaemon if it's not running."""
408 if not is_running():412 if not is_running():
409 raise Exception('Not implemented yet!')413 # look in the reg to find the path of the .exe to be executed
414 # to launch the sd on windows
415 key = OpenKey(HKEY_LOCAL_MACHINE, U1_REG_PATH)
416 path = QueryValueEx(key, SD_INSTALL_PATH)[0]
417 p = subprocess.Popen([path,])
418 return defer.succeed(p)
410 else:419 else:
411 return defer.succeed(None)420 return defer.succeed(None)
412421

Subscribers

People subscribed via source and target branches