def test_main_function(self, pymongo_mock, mock_log_info): """Basic usage.""" client = mongomock.MongoClient('mongodb://test_url/test_db') pymongo_mock.MongoClient.return_value = client mongo_db = client.get_database('test_db') mongo_db.create_collection('missing-in-importers') mongo_db.create_collection('in-both') mongo_db.create_collection('in-both-with-meta') two_days_ago = datetime.datetime.now() - datetime.timedelta(days=2) mongo_db.meta.insert_one({ '_id': 'in-both-with-meta', 'updated_at': two_days_ago, }) mongo_db.create_collection('in-both-not-needed') import_status.main('mongodb://test_url/test_db') mock_log_info.assert_any_call('%s collection%s without importers:', _AnyColorText('1'), ' is') mock_log_info.assert_any_call('%s collection%s not imported yet:', _AnyColorText('1'), ' is') mock_log_info.assert_any_call( 'Status report on imported collections (%d):', 3) mock_log_info.assert_any_call( '\t%s - %s - %s', _AnyColorText('in-both-not-needed'), _AnyColorText('in both not needed'), termcolor.colored('No import needed', 'green')) mock_log_info.assert_any_call( '\t%s - %s - %s', _AnyColorText('in-both'), _AnyColorText('in both'), termcolor.colored('Metainformation missing', 'red')) mock_log_info.assert_any_call( '\t%s - %s - %s', _AnyColorText('in-both-with-meta'), _AnyColorText('in both with meta (JobGroup)'), _AnyColorText('last import: %s' % two_days_ago))
def test_display_command(self, pymongo_mock, mock_log_info): """Display the command to import a missing collection.""" client = mongomock.MongoClient('mongodb://test_url/test_db') pymongo_mock.MongoClient.return_value = client import_status.main('mongodb://test_url/test_db') mock_log_info.assert_any_call('%s collection%s not imported yet:', _AnyColorText('1'), ' is') mock_log_info.assert_any_call( 'To import "%s" in "%s", run:\n%s', 'Collection name', 'collection_id', 'my-long-command \\\n' ' --mongo_url "mongodb://test_url/test_db" ' '--mongo_collection "collection_id"\n')
def test_display_command(self, pymongo_mock, mock_log_info): """Display the command to import a missing collection.""" import_status.IMPORTERS = { 'collection_id': import_status.Importer( name="Collection name", command='my-long-command --mongo_url %(mongo_url)s', is_imported=True, proto_type=None, key=None), } client = mongomock.MongoClient('mongodb://test_url/test_db') pymongo_mock.MongoClient.return_value = client import_status.main('mongodb://test_url/test_db') mock_log_info.assert_any_call( '%s collection%s not imported yet:', _AnyColorText('1'), ' is') mock_log_info.assert_any_call( 'To import %s, run:\n%s\n', 'Collection name', 'my-long-command --mongo_url mongodb://test_url/test_db')