def test_load_empty_savepoint(self): sess = mock.MagicMock() ds = Dataset(session=sess) ds.savepoints = mock.MagicMock() ds.savepoints.index = {} with pytest.raises(KeyError) as err: ds.load_savepoint('savepoint')
def test_forks_dataframe(self): f1 = dict( name='name', description='description', is_published=True, owner_name='Jane Doe', current_editor_name='John Doe', creation_time='2016-01-01T00:00Z', modification_time='2016-01-01T00:00Z', id='abc123', ) sess = mock.MagicMock() ds = Dataset(session=sess) ds.forks = mock.MagicMock() ds.forks.index = { 'abc1': f1 } df = ds.forks_dataframe() assert isinstance(df, DataFrame) keys = [k for k in df.keys()] assert keys == [ 'name', 'description', 'is_published', 'owner_name', 'current_editor_name', 'creation_time', 'modification_time', 'id' ]
def test_create_categorical_raises_valueerror(self): sess = mock.MagicMock() ds = Dataset(sess) with pytest.raises(ValueError) as err: categories = [ {'id': 2, 'name': 'Normal Users', 'numeric_value': 2, 'missing': False}, {'id': 3, 'name': 'Hipsters', 'numeric_value': 3, 'missing': False}, {'id': 32767, 'name': 'Unknown', 'numeric_value': None, 'missing': True} ] rules = [ 'operating_system in ("Linux", "Solaris", "Minix", "FreeBSD", "NetBSD")', 'operating_system == "Windows"', 'operating_system == "MacOS"', 'missing(operating_system)' ] new_var = ds.create_categorical( categories=categories, rules=rules, name='Operating System Users', alias='operating_system_users', description='Type of Operating System Users' ) assert str(err.value) == \ 'Amount of rules should match categories (or categories -1)'
def test_forks_dataframe_empty(self): sess = mock.MagicMock() ds = Dataset(session=sess) ds.forks = mock.MagicMock() ds.forks.index = {} df = ds.forks_dataframe() assert df is None
def test_load_initial_savepoint(self): sess = mock.MagicMock() ds = Dataset(session=sess) ds.savepoints = mock.MagicMock() ds.savepoints.index = { 1: { 'description': 'savepoint description' } } with pytest.raises(KeyError) as err: ds.create_savepoint('savepoint description')
def test_create_savepoint(self): sess = mock.MagicMock() ds = Dataset(session=sess) ds.savepoints = mock.MagicMock() ds.create_savepoint('savepoint description') ds.savepoints.create.assert_called_with( { 'body': { 'description': 'savepoint description' } } )
def test_change_current_editor(self): body = { 'self': self.ds_url, 'name': 'Dataset Name' } sess = mock.MagicMock() ds = Dataset(session=sess, body=body) ds.patch = mock.MagicMock() ds.change_current_editor(self.user_url) ds.patch.assert_called_with({ 'current_editor': self.user_url })
def test_delete_forks(self): f1 = mock.MagicMock() f2 = mock.MagicMock() f3 = mock.MagicMock() sess = mock.MagicMock() ds = Dataset(session=sess) ds.forks = mock.MagicMock() ds.forks.index = { 'abc1': f1, 'abc2': f2, 'abc3': f3 } ds.delete_forks() f1.entity.delete.call_count == 1 f2.entity.delete.call_count == 1 f3.entity.delete.call_count == 1
def test_variable_as_attribute(self): session = mock.MagicMock() test_variable = mock.MagicMock() test_variable.entity = Entity(session=session) variables = { 'test_variable': test_variable } dataset = Dataset({}) dataset.variables = mock.MagicMock() dataset.variables.by.return_value = variables assert isinstance(dataset.test_variable, Entity) with pytest.raises(AttributeError) as err: dataset.another_variable assert str(err.value) == 'Dataset has no attribute another_variable'
def test_fork(self): sess = mock.MagicMock() body = JSONObject({ 'name': 'ds name', 'description': 'ds description' }) ds = Dataset(session=sess, body=body) ds.forks = mock.MagicMock() ds.forks.index = {} f = ds.fork() ds.forks.create.assert_called_with( { 'body': { 'name': 'FORK #1 of ds name', 'description': 'ds description', 'is_published': False, } } ) f.create_savepoint.assert_called_with('initial fork')
def test_create_categorical_raises_valueerror(self): sess = mock.MagicMock() ds = Dataset(sess) with pytest.raises(ValueError) as err: categories = [{ 'id': 2, 'name': 'Normal Users', 'numeric_value': 2, 'missing': False }, { 'id': 3, 'name': 'Hipsters', 'numeric_value': 3, 'missing': False }, { 'id': 32767, 'name': 'Unknown', 'numeric_value': None, 'missing': True }] rules = [ 'operating_system in ("Linux", "Solaris", "Minix", "FreeBSD", "NetBSD")', 'operating_system == "Windows"', 'operating_system == "MacOS"', 'missing(operating_system)' ] new_var = ds.create_categorical( categories=categories, rules=rules, name='Operating System Users', alias='operating_system_users', description='Type of Operating System Users') assert str(err.value) == \ 'Amount of rules should match categories (or categories -1)'
def test_change_current_editor_email(self): sess = mock.MagicMock() response = mock.MagicMock() response.payload = { 'index': { self.user_url: { 'email': '*****@*****.**' } } } def _get(*args, **kwargs): return response sess.get.side_effect = _get ds = Dataset(session=sess) ds.self = self.ds_url ds.patch = mock.MagicMock() ds.change_current_editor('*****@*****.**') ds.patch.assert_called_with({ 'current_editor': self.user_url })