| 
									
										
										
										
											2021-07-26 07:40:39 +01:00
										 |  |  | from urllib.parse import quote | 
					
						
							| 
									
										
										
										
											2021-02-01 05:15:57 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | import pytest | 
					
						
							| 
									
										
										
										
											2021-10-18 19:44:29 +00:00
										 |  |  | import sure  # noqa # pylint: disable=unused-import | 
					
						
							| 
									
										
										
										
											2017-11-10 18:44:02 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | import moto.server as server | 
					
						
							|  |  |  | from moto import mock_iotdata | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-31 08:44:26 -07:00
										 |  |  | """
 | 
					
						
							| 
									
										
										
										
											2017-11-10 18:44:02 +09:00
										 |  |  | Test the different server responses | 
					
						
							| 
									
										
										
										
											2019-10-31 08:44:26 -07:00
										 |  |  | """
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-10 18:44:02 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | @mock_iotdata | 
					
						
							|  |  |  | def test_iotdata_list(): | 
					
						
							|  |  |  |     backend = server.create_backend_app("iot-data") | 
					
						
							|  |  |  |     test_client = backend.test_client() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # just making sure that server is up | 
					
						
							|  |  |  |     thing_name = "nothing" | 
					
						
							| 
									
										
										
										
											2022-11-17 21:41:08 -01:00
										 |  |  |     res = test_client.get(f"/things/{thing_name}/shadow") | 
					
						
							| 
									
										
										
										
											2017-11-10 18:44:02 +09:00
										 |  |  |     res.status_code.should.equal(404) | 
					
						
							| 
									
										
										
										
											2021-02-01 05:15:57 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @pytest.mark.parametrize( | 
					
						
							|  |  |  |     "url_encode_topic", | 
					
						
							|  |  |  |     [ | 
					
						
							|  |  |  |         pytest.param(True, id="Topic in Path is URL encoded"), | 
					
						
							|  |  |  |         pytest.param(False, id="Topic in Path is *not* URL encoded"), | 
					
						
							|  |  |  |     ], | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | @mock_iotdata | 
					
						
							|  |  |  | def test_publish(url_encode_topic): | 
					
						
							|  |  |  |     backend = server.create_backend_app("iot-data") | 
					
						
							|  |  |  |     test_client = backend.test_client() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     topic = "test/topic" | 
					
						
							|  |  |  |     topic_for_path = quote(topic, safe="") if url_encode_topic else topic | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-11-17 21:41:08 -01:00
										 |  |  |     result = test_client.post(f"/topics/{topic_for_path}") | 
					
						
							| 
									
										
										
										
											2021-02-01 05:15:57 -08:00
										 |  |  |     result.status_code.should.equal(200) |