| 
									
										
										
										
											2019-10-27 11:44:06 +01:00
										 |  |  | import ./make-test-python.nix ({ pkgs, ...} : { | 
					
						
							| 
									
										
										
										
											2016-06-21 10:18:44 +02:00
										 |  |  |   name = "emacs-daemon"; | 
					
						
							| 
									
										
										
										
											2021-01-10 20:08:30 +01:00
										 |  |  |   meta = with pkgs.lib.maintainers; { | 
					
						
							| 
									
										
										
										
											2017-01-31 11:00:14 +01:00
										 |  |  |     maintainers = [ ]; | 
					
						
							| 
									
										
										
										
											2016-06-21 10:18:44 +02:00
										 |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   enableOCR = true; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   machine = | 
					
						
							| 
									
										
										
										
											2018-07-20 20:56:59 +00:00
										 |  |  |     { ... }: | 
					
						
							| 
									
										
										
										
											2016-06-21 10:18:44 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     { imports = [ ./common/x11.nix ]; | 
					
						
							|  |  |  |       services.emacs = { | 
					
						
							|  |  |  |         enable = true; | 
					
						
							|  |  |  |         defaultEditor = true; | 
					
						
							|  |  |  |       }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       # Important to get the systemd service running for root | 
					
						
							|  |  |  |       environment.variables.XDG_RUNTIME_DIR = "/run/user/0"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       environment.variables.TEST_SYSTEM_VARIABLE = "system variable"; | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-27 11:44:06 +01:00
										 |  |  |   testScript = ''
 | 
					
						
							|  |  |  |       machine.wait_for_unit("multi-user.target") | 
					
						
							| 
									
										
										
										
											2016-06-21 10:18:44 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |       # checks that the EDITOR environment variable is set | 
					
						
							| 
									
										
										
										
											2019-10-27 11:44:06 +01:00
										 |  |  |       machine.succeed('test $(basename "$EDITOR") = emacseditor') | 
					
						
							| 
									
										
										
										
											2016-06-21 10:18:44 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |       # waits for the emacs service to be ready | 
					
						
							| 
									
										
										
										
											2019-10-27 11:44:06 +01:00
										 |  |  |       machine.wait_until_succeeds( | 
					
						
							|  |  |  |           "systemctl --user status emacs.service | grep 'Active: active'" | 
					
						
							|  |  |  |       ) | 
					
						
							| 
									
										
										
										
											2016-06-21 10:18:44 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |       # connects to the daemon | 
					
						
							| 
									
										
										
										
											2019-10-27 11:44:06 +01:00
										 |  |  |       machine.succeed("emacsclient --create-frame $EDITOR &") | 
					
						
							| 
									
										
										
										
											2016-06-21 10:18:44 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |       # checks that Emacs shows the edited filename | 
					
						
							| 
									
										
										
										
											2019-10-27 11:44:06 +01:00
										 |  |  |       machine.wait_for_text("emacseditor") | 
					
						
							| 
									
										
										
										
											2016-06-21 10:18:44 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |       # makes sure environment variables are accessible from Emacs | 
					
						
							| 
									
										
										
										
											2019-10-27 11:44:06 +01:00
										 |  |  |       machine.succeed( | 
					
						
							|  |  |  |           "emacsclient --eval '(getenv \"TEST_SYSTEM_VARIABLE\")' | grep -q 'system variable'" | 
					
						
							|  |  |  |       ) | 
					
						
							| 
									
										
										
										
											2016-06-21 10:18:44 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-27 11:44:06 +01:00
										 |  |  |       machine.screenshot("emacsclient") | 
					
						
							| 
									
										
										
										
											2016-06-21 10:18:44 +02:00
										 |  |  |     '';
 | 
					
						
							|  |  |  | }) |