| 
									
										
										
										
											2016-08-03 22:18:51 +03:00
										 |  |  | # Copyright 2014-present PlatformIO <contact@platformio.org> | 
					
						
							| 
									
										
										
										
											2015-11-18 17:16:17 +02:00
										 |  |  | # | 
					
						
							|  |  |  | # Licensed under the Apache License, Version 2.0 (the "License"); | 
					
						
							|  |  |  | # you may not use this file except in compliance with the License. | 
					
						
							|  |  |  | # You may obtain a copy of the License at | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | #    http://www.apache.org/licenses/LICENSE-2.0 | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Unless required by applicable law or agreed to in writing, software | 
					
						
							|  |  |  | # distributed under the License is distributed on an "AS IS" BASIS, | 
					
						
							|  |  |  | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
					
						
							|  |  |  | # See the License for the specific language governing permissions and | 
					
						
							|  |  |  | # limitations under the License. | 
					
						
							| 
									
										
										
										
											2015-02-19 17:23:22 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-02 19:10:29 +03:00
										 |  |  | import os | 
					
						
							| 
									
										
										
										
											2015-02-19 17:23:22 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-21 15:15:00 +02:00
										 |  |  | import pytest | 
					
						
							| 
									
										
										
										
											2016-08-02 19:10:29 +03:00
										 |  |  | from click.testing import CliRunner | 
					
						
							| 
									
										
										
										
											2015-02-19 17:23:22 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-21 15:15:00 +02:00
										 |  |  | @pytest.fixture(scope="session") | 
					
						
							| 
									
										
										
										
											2015-02-19 17:23:22 +02:00
										 |  |  | def platformio_setup(request): | 
					
						
							| 
									
										
										
										
											2015-03-05 14:48:56 +02:00
										 |  |  |     pioenvvars = ("ENABLE_PROMPTS", "ENABLE_TELEMETRY") | 
					
						
							|  |  |  |     for v in pioenvvars: | 
					
						
							| 
									
										
										
										
											2016-08-02 19:10:29 +03:00
										 |  |  |         os.environ["PLATFORMIO_SETTING_%s" % v] = "No" | 
					
						
							| 
									
										
										
										
											2015-02-19 17:23:22 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def platformio_teardown(): | 
					
						
							| 
									
										
										
										
											2015-03-05 14:48:56 +02:00
										 |  |  |         for v in pioenvvars: | 
					
						
							|  |  |  |             _name = "PLATFORMIO_SETTING_%s" % v | 
					
						
							| 
									
										
										
										
											2016-08-02 19:10:29 +03:00
										 |  |  |             if _name in os.environ: | 
					
						
							|  |  |  |                 del os.environ[_name] | 
					
						
							| 
									
										
										
										
											2015-02-19 17:23:22 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     request.addfinalizer(platformio_teardown) | 
					
						
							| 
									
										
										
										
											2015-02-21 15:15:00 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-02 19:10:29 +03:00
										 |  |  | @pytest.fixture(scope="module") | 
					
						
							| 
									
										
										
										
											2015-02-21 15:15:00 +02:00
										 |  |  | def clirunner(): | 
					
						
							|  |  |  |     return CliRunner() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @pytest.fixture(scope="session") | 
					
						
							|  |  |  | def validate_cliresult(): | 
					
						
							|  |  |  |     def decorator(result): | 
					
						
							|  |  |  |         assert result.exit_code == 0 | 
					
						
							|  |  |  |         assert not result.exception | 
					
						
							|  |  |  |         assert "error" not in result.output.lower() | 
					
						
							|  |  |  |     return decorator | 
					
						
							| 
									
										
										
										
											2016-08-02 19:10:29 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @pytest.fixture(scope="module") | 
					
						
							|  |  |  | def isolated_pio_home(request, tmpdir_factory): | 
					
						
							|  |  |  |     home_dir = tmpdir_factory.mktemp(".platformio") | 
					
						
							|  |  |  |     os.environ['PLATFORMIO_HOME_DIR'] = str(home_dir) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def fin(): | 
					
						
							|  |  |  |         del os.environ['PLATFORMIO_HOME_DIR'] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     request.addfinalizer(fin) | 
					
						
							|  |  |  |     return home_dir |