Esempio n. 1
0
 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')
Esempio n. 2
0
    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'
        ]
Esempio n. 3
0
    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)'
Esempio n. 4
0
    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
Esempio n. 5
0
 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')
Esempio n. 6
0
 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'
             }
         }
     )
Esempio n. 7
0
    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
        })
Esempio n. 8
0
    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
Esempio n. 9
0
    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'
Esempio n. 10
0
 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')
Esempio n. 11
0
    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)'
Esempio n. 12
0
    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
        })