def test_has_bluestore_label(self): # patch device.Device __init__ function to do nothing since we want to only test the # low-level behavior of has_bluestore_label with patch.object(device.Device, "__init__", lambda self, path, with_lsm=False: None): disk = device.Device("/dev/sda") disk.abspath = "/dev/sda" with patch('builtins.open', mock_open(read_data=b'bluestore block device\n')): assert disk.has_bluestore_label with patch('builtins.open', mock_open(read_data=b'not a bluestore block device\n')): assert not disk.has_bluestore_label
class AuthenticationTests(TestCase): """Ensure that the authentication module works as expected.""" @patch('%s.open' % __name__, mock_open(read_data=MOCK_FILE_DATA), create=True) def test_login(self): """Test the login function.""" open_name = '%s.open' % __name__ print("Overloaded name for open is %s" % (open_name)) self.assertTrue(login('shane', 'pass')) @patch('%s.open' % __name__, mock_open(read_data=MOCK_FILE_DATA), create=True) def test_login_no_user(self): """Test that login will fail when the user is unknown.""" self.assertFalse(login("fred", "pass"))
def test_cluster_configuration_cache_initialization(self): configuration_json = '{ "c1" : { "foo-site" : { "foo" : "bar", "foobar" : "baz" } } }' open_mock = mock_open(read_data=configuration_json) with patch("__builtin__.open", open_mock): cluster_configuration = ClusterConfiguration("/foo/bar/baz") open_mock.assert_called_with("/foo/bar/baz/configurations.json", 'r') self.assertEqual( 'bar', cluster_configuration.get_configuration_value( 'c1', 'foo-site/foo')) self.assertEqual( 'baz', cluster_configuration.get_configuration_value( 'c1', 'foo-site/foobar')) self.assertEqual( None, cluster_configuration.get_configuration_value('c1', 'INVALID')) self.assertEqual( None, cluster_configuration.get_configuration_value( 'c1', 'INVALID/INVALID')) self.assertEqual( None, cluster_configuration.get_configuration_value( 'INVALID', 'foo-site/foo')) self.assertEqual( None, cluster_configuration.get_configuration_value( 'INVALID', 'foo-site/foobar'))
class TestGameConfig(unittest.TestCase): def setUp(self): self.game_config = GameConfig(world='pl100') def test_get_buildings_config(self): keys = [ 'speed', 'smith', 'storage', 'market', 'main', 'wood', 'wall', 'statue', 'stable', 'place', 'stone', 'iron', 'garage', 'hide', 'barracks', 'farm', 'snob' ] config = self.game_config.get_config() for key in keys: self.assertIn(key, config) @mock.patch( 'requests.get', return_value=type('response', (), {'iter_content': lambda x: [b'0123456', b'']})) @mock.patch('game_config.open', mock.mock_open()) def test_download_file(self, *args): self.game_config.download_file(self.game_config.buildings_file_name, self.game_config.buildings_file_link) def test_get_file_failure(self): self.game_config.download_file = lambda x, y: None with mock.patch('game_config.open', mock.MagicMock(), create=True) as mocked_open: mocked_open.side_effect = FileNotFoundError() self.assertRaises(FileNotFoundError, self.game_config.get_file, self.game_config.buildings_file_name, self.game_config.buildings_file_link) self.assertTrue(mocked_open.called)
def test_csv_output_uses_encoding_that_works_with_excel(self): mocked_open = mock_open() with patch("api.barriers.tasks.NamedTemporaryFile", mocked_open): with create_named_temporary_file(): pass mocked_open.assert_called_with(mode="w+t", encoding="utf-8-sig")
def test_parse_with_incorrect_number_of_queries(self): mock_open = mock.mock_open(read_data=self.INCORRECT_NUMBER_OF_QUERIES_INPUT_FILE) with mock.patch('main.open', mock_open, create=True): with self.assertRaises(Exception) as e: parser = Parser() parser.parse('') error_msg = e.exception self.assertEquals(str(error_msg), Parser.INCORRECT_NUMBER_OF_QUERIES_ERROR_MSG)
def test_parse_with_incorrect_input_file(self): mock_open = mock.mock_open(read_data=self.INCORRECT_INPUT_FILE) with mock.patch('main.open', mock_open, create=True): with self.assertRaises(Exception) as e: parser = Parser() parser.parse('') error_msg = e.exception self.assertEquals(str(error_msg), Parser.INCORRECT_FORMAT_OF_FILE_ERROR_MSG)
def test_feature_without_geometry(self): with patch("builtins.open", mock_open(read_data=self.data_geojson_feature_no_geometry)): with CaptureSTDOUT() as captured_output: call_command("import_geojson", "admin_level_0_simplified.json") self.assertEqual(captured_output.getvalue(), "=== parsing admin_level_0_simplified.json\n") self.assertEqual(AdminBoundary.objects.count(), 0)
def test_filename_with_no_features(self): with patch("builtins.open", mock_open(read_data=self.data_geojson_no_features)): with CaptureSTDOUT() as captured_output: call_command("import_geojson", "R188933admin0.json") self.assertEqual(captured_output.getvalue(), "=== parsing R188933admin0.json\n") self.assertEqual(AdminBoundary.objects.count(), 0)
class AppConfigTests(unittest.TestCase): def setUp(self): self.patcher = patch('lib.validate.configuration.Configuration.validate_json') self.mock_object = self.patcher.start() self.mock_object.return_value = None self.arguments = mock.Mock() self.arguments.config_file = "filename" self.http_utils = mock.Mock() self.http_utils.get_request.text.return_value = "" def tearDown(self): pass @patch('builtins.open', mock.mock_open(read_data='{"id":"app1"}')) @mock.patch('requests.get', ) def test_get_app_id(self, request_mock): app_config = AppConfig(self.arguments) result = app_config.get_app_id() self.assertEqual(result, 'app1') @patch('builtins.open', mock.mock_open(read_data='{"port":5000}')) def test_get_app_port(self): app_config = AppConfig(self.arguments) result = app_config.get_app_port() self.assertEqual(result, 5000) @patch('builtins.open', mock.mock_open(read_data='{"delayStartMs":123}')) def test_get_delay_start_ms(self): app_config = AppConfig(self.arguments) result = app_config.get_delay_start_ms() self.assertEqual(result, 123) @patch('builtins.open', mock.mock_open(read_data='{}')) def test_get_app_port_no_value(self): app_config = AppConfig(self.arguments) with self.assertRaises(Exception): app_config.get_app_port() @patch('builtins.open', mock.mock_open(read_data='{"dependencies":[{"id":"app2","urls":["http://52.53.221.242:5001"]}]}')) def test_get_dependency(self): app_config = AppConfig(self.arguments) result = app_config.get_dependency_endpoint('app2') assert (len(result) > 0)
def test_wrong_filename(self): with patch("builtins.open", mock_open(read_data=self.data_geojson_level_0)): with CaptureSTDOUT() as captured_output: call_command("import_geojson", "data.json") self.assertEqual( captured_output.getvalue(), "=== parsing data.json\nSkipping 'data.json', doesn't match file pattern.\n" ) self.assertEqual(AdminBoundary.objects.count(), 0)
def test_feature_multipolygon_geometry(self): with patch("builtins.open", mock_open(read_data=self.data_geojson_multipolygon)): with CaptureSTDOUT() as captured_output: call_command("import_geojson", "admin_level_0_simplified.json") self.assertEqual( captured_output.getvalue(), "=== parsing admin_level_0_simplified.json\n ** adding Granica (R1000)\n ** removing unseen boundaries (R1000)\nOther unseen boundaries removed: 0\n ** updating paths for all of Granica\n", ) self.assertEqual(AdminBoundary.objects.count(), 1)
def test_missing_parent_in_db(self): with patch("builtins.open", mock_open(read_data=self.data_geojson_without_parent)): with CaptureSTDOUT() as captured_output: call_command("import_geojson", "admin_level_1_simplified.json") self.assertEqual( captured_output.getvalue(), "=== parsing admin_level_1_simplified.json\nSkipping Međa (R2000) as parent R0 not found.\n", ) self.assertEqual(AdminBoundary.objects.count(), 0)
def test_ok_filename_admin_level_with_country_prefix(self): with patch("builtins.open", mock_open(read_data=self.data_geojson_level_0)): with CaptureSTDOUT() as captured_output: call_command("import_geojson", "R188933admin0.json", "--country=R188933") self.assertEqual( captured_output.getvalue(), "=== parsing R188933admin0.json\n ** adding Granica (R1000)\n ** removing unseen boundaries (R1000)\nOther unseen boundaries removed: 0\n ** updating paths for all of Granica\n", ) self.assertEqual(AdminBoundary.objects.count(), 1)
def test_ok_filename_admin(self): with patch("builtins.open", mock_open(read_data=self.data_geojson_level_0)): with CaptureSTDOUT() as captured_output: call_command("import_geojson", "R188933admin0.json") self.assertEqual( captured_output.getvalue(), "=== parsing R188933admin0.json\n ** adding Granica (R1000)\n ** removing unseen boundaries (R1000)\nOther unseen boundaries removed: 0\n ** updating paths for all of Granica\n", ) self.assertEqual(AdminBoundary.objects.count(), 1)
def get_content_written_to_csv(self, queryset): field_titles = BarrierListS3EmailFile.field_titles serializer = BarrierCsvExportSerializer(queryset, many=True) mocked_open = mock_open() with patch("api.barriers.tasks.NamedTemporaryFile", mocked_open): with create_named_temporary_file() as temporary_file: write_to_temporary_file(temporary_file, field_titles, serializer) mock_handle = mocked_open() written = "".join( [str(call.args[0]) for call in mock_handle.write.mock_calls]) return written
def test_cluster_configuration_cache_initialization(self): configuration_json = '{ "c1" : { "foo-site" : { "foo" : "bar", "foobar" : "baz" } } }' open_mock = mock_open(read_data=configuration_json) with patch("__builtin__.open", open_mock): cluster_configuration = ClusterConfiguration(os.path.join(os.sep, "foo", "bar", "baz")) open_mock.assert_called_with(os.sep + "foo" + os.sep + "bar" + os.sep + "baz" + os.sep + "configurations.json", 'r') self.assertEqual('bar', cluster_configuration.get_configuration_value('c1', 'foo-site/foo') ) self.assertEqual('baz', cluster_configuration.get_configuration_value('c1', 'foo-site/foobar') ) self.assertEqual(None, cluster_configuration.get_configuration_value('c1', 'INVALID') ) self.assertEqual(None, cluster_configuration.get_configuration_value('c1', 'INVALID/INVALID') ) self.assertEqual(None, cluster_configuration.get_configuration_value('INVALID', 'foo-site/foo') ) self.assertEqual(None, cluster_configuration.get_configuration_value('INVALID', 'foo-site/foobar') ) pass
def test_task_list_groups_api_export1(self, mock_post): ''' Tests the when requests gets a successful response from forum ''' test_name = sys._getframe().f_code.co_name mock_resp = helper._mock_response(test_name=test_name) mock_post.return_value = mock_resp filename = tempfile.mktemp() #Cant get this to work via a decorator mo = mock_open() with patch('forumsentry.api.open', mo): exported = self._api.export("bill", filename, "bob") self.assertTrue(exported)
def test_task_list_groups_api_export2(self, mock_post): ''' Tests when requests gets a 404 response from forum ''' test_name = sys._getframe().f_code.co_name mock_resp = helper._mock_response(status=404, raise_for_status="bill not found") mock_post.return_value = mock_resp filename = tempfile.mktemp() #Cant get this to work via a decorator mo = mock_open() with patch('forumsentry.api.open', mo): exported = self._api.export("bill", filename, "bob") self.assertFalse(exported)
def test_wsl(self): from six.moves import builtins with mock.patch("platform.system", mock.MagicMock(return_value='Linux')): with mock.patch.object(OSInfo, '_get_linux_distro_info'): self.assertFalse(OSInfo().is_windows) self.assertFalse(OSInfo().is_cygwin) self.assertFalse(OSInfo().is_msys) self.assertTrue(OSInfo().is_linux) self.assertFalse(OSInfo().is_freebsd) self.assertFalse(OSInfo().is_macos) self.assertFalse(OSInfo().is_solaris) with self.assertRaises(ConanException): OSInfo.uname() with mock.patch.object(builtins, "open", mock.mock_open(read_data="4.4.0-43-Microsoft")): self.assertEqual(OSInfo.detect_windows_subsystem(), WSL)
def test_parse_correct_input_file(self): mock_open = mock.mock_open(read_data=self.CORRECT_INPUT_FILE) with mock.patch('main.open', mock_open, create=True): parser = Parser() parser.parse('') self.assertEqual(parser.cases_list.__len__(), 1) self.assertEqual(parser.cases_list[0].city.dx, 4) self.assertEqual(parser.cases_list[0].city.dy, 4) self.assertEquals(parser.cases_list[0].coffee_shops.__len__(), 5) self.assertIn((1, 1), parser.cases_list[0].coffee_shops) self.assertIn((1, 2), parser.cases_list[0].coffee_shops) self.assertIn((3, 3), parser.cases_list[0].coffee_shops) self.assertIn((4, 4), parser.cases_list[0].coffee_shops) self.assertIn((2, 4), parser.cases_list[0].coffee_shops) self.assertEquals(parser.cases_list[0].queries.__len__(), 3) self.assertIn(1, parser.cases_list[0].queries) self.assertIn(2, parser.cases_list[0].queries) self.assertIn(4, parser.cases_list[0].queries)
def test_readSamples(self, mock_isfile): # Set up test parameters sampleSheetFile = MagicMock(name="sampleSheetFile") # Set up supporting mocks mock_isfile.return_value = True sampleSheetText = [ 'sample1\ts3://some/path/to/sample1.bam\n', 'sample2\ts3://some/path/to/sample2.bam\n' ] mock_open = mock.mock_open(read_data=''.join(sampleSheetText)) mock_open.return_value.__iter__ = lambda self: iter(self.readline, '') # Test with patch('__builtin__.open', mock_open): actual_sampleSheet = readSamples(sampleSheetFile) # Check results self.assertEqual(len(actual_sampleSheet), 2) self.assertEqual(actual_sampleSheet[0]['name'], 'sample1') self.assertEqual(actual_sampleSheet[1]['name'], 'sample2') self.assertEqual(actual_sampleSheet[0]['bam'], 's3://some/path/to/sample1.bam') self.assertEqual(actual_sampleSheet[1]['bam'], 's3://some/path/to/sample2.bam')
def __mock_file(self, return_value=""): open_mock = mock_open(read_data=return_value) open_mock.return_value.readlines = Mock( return_value=return_value.split("\n")) return open_mock
def vswhere_description_strip_test(self): myoutput = """ [ { "instanceId": "17609d7c", "installDate": "2018-06-11T02:15:04Z", "installationName": "VisualStudio/15.7.3+27703.2026", "installationPath": "", "installationVersion": "15.7.27703.2026", "productId": "Microsoft.VisualStudio.Product.Enterprise", "productPath": "", "isPrerelease": false, "displayName": "Visual Studio Enterprise 2017", "description": "生産性向上と、さまざまな規模のチーム間の調整のための Microsoft DevOps ソリューション", "channelId": "VisualStudio.15.Release", "channelUri": "https://aka.ms/vs/15/release/channel", "enginePath": "", "releaseNotes": "https://go.microsoft.com/fwlink/?LinkId=660692#15.7.3", "thirdPartyNotices": "https://go.microsoft.com/fwlink/?LinkId=660708", "updateDate": "2018-06-11T02:15:04.7009868Z", "catalog": { "buildBranch": "d15.7", "buildVersion": "15.7.27703.2026", "id": "VisualStudio/15.7.3+27703.2026", "localBuild": "build-lab", "manifestName": "VisualStudio", "manifestType": "installer", "productDisplayVersion": "15.7.3", "productLine": "Dev15", "productLineVersion": "2017", "productMilestone": "RTW", "productMilestoneIsPreRelease": "False", "productName": "Visual Studio", "productPatchVersion": "3", "productPreReleaseMilestoneSuffix": "1.0", "productRelease": "RTW", "productSemanticVersion": "15.7.3+27703.2026", "requiredEngineVersion": "1.16.1187.57215" }, "properties": { "campaignId": "", "canceled": "0", "channelManifestId": "VisualStudio.15.Release/15.7.3+27703.2026", "nickname": "", "setupEngineFilePath": "" } }, { "instanceId": "VisualStudio.12.0", "installationPath": "", "installationVersion": "12.0" } ] """ if six.PY3: # In python3 the output from subprocess.check_output are bytes, not str myoutput = myoutput.encode() myrunner = mock_open() myrunner.check_output = lambda x: myoutput with patch('conans.client.tools.win.subprocess', myrunner): json = vswhere() self.assertNotIn("descripton", json)
def test_feature_unknown_geometry(self): with patch("builtins.open", mock_open(read_data=self.data_geojson_unknown_geometry)): self.assertRaises(Exception, call_command, "import_geojson", "admin_level_0_simplified.json")