Exemple #1
0
    def test_add_data_multiple_chunk3(self, m_isinstance, m_scd, m_open,
                                      _m_pickle):
        """
        Test using the DataFileSet with "uuid_chunk" set to 3 (arbitrary choice)
        """
        # Pretend that we are giving DataElement instances
        m_isinstance.return_value = True

        # Testing that appropriate directories are given to safe_create_dir and
        # appropriate filepaths are passed to open.
        expected_uuid_1 = "abcdefg"
        expected_uuid_2 = "1234567"
        expected_uuid_3 = "4F*s93#5"

        mock_elem_1 = mock.MagicMock()
        mock_elem_1.uuid.return_value = expected_uuid_1
        mock_elem_2 = mock.MagicMock()
        mock_elem_2.uuid.return_value = expected_uuid_2
        mock_elem_3 = mock.MagicMock()
        mock_elem_3.uuid.return_value = expected_uuid_3

        # Chunk = 3
        dfs = DataFileSet('/', uuid_chunk=3)
        # noinspection PyTypeChecker
        dfs.add_data(mock_elem_1, mock_elem_2, mock_elem_3)
        # Created correct directories
        self.assertEqual(m_scd.call_count, 3)
        m_scd.assert_any_call('/abc/de')
        m_scd.assert_any_call('/123/45')
        m_scd.assert_any_call('/4F*/s93')
        # called open correctly 3 times
        self.assertEqual(m_open.call_count, 3)
        m_open.assert_any_call('/abc/de/UUID_abcdefg.dataElement', 'wb')
        m_open.assert_any_call('/123/45/UUID_1234567.dataElement', 'wb')
        m_open.assert_any_call('/4F*/s93/UUID_4F*s93#5.dataElement', 'wb')
Exemple #2
0
    def test_add_data_multiple_chunk3_relative(self, m_isinstance, m_scd,
                                               m_open, m_pickle):
        # Pretend that we are giving DataElement instances
        m_isinstance.return_value = True

        # Testing that appropriate directories are given to safe_create_dir and
        # appropriate filepaths are passed to open.
        expected_uuid_1 = "abcdefg"
        expected_uuid_2 = "1234567"
        expected_uuid_3 = "4F*s93#5"

        mock_elem_1 = mock.MagicMock()
        mock_elem_1.uuid.return_value = expected_uuid_1
        mock_elem_2 = mock.MagicMock()
        mock_elem_2.uuid.return_value = expected_uuid_2
        mock_elem_3 = mock.MagicMock()
        mock_elem_3.uuid.return_value = expected_uuid_3

        # Chunk = 3
        dfs = DataFileSet('rel/subdir', uuid_chunk=3)
        dfs.add_data(mock_elem_1, mock_elem_2, mock_elem_3)
        # Created correct directories
        nose.tools.assert_equal(m_scd.call_count, 3)
        m_scd.assert_any_call('rel/subdir/abc/de')
        m_scd.assert_any_call('rel/subdir/123/45')
        m_scd.assert_any_call('rel/subdir/4F*/s93')
        # called open correctly 3 times
        nose.tools.assert_equal(m_open.call_count, 3)
        m_open.assert_any_call('rel/subdir/abc/de/UUID_abcdefg.dataElement',
                               'wb')
        m_open.assert_any_call('rel/subdir/123/45/UUID_1234567.dataElement',
                               'wb')
        m_open.assert_any_call('rel/subdir/4F*/s93/UUID_4F*s93#5.dataElement',
                               'wb')
Exemple #3
0
    def test_add_data_multiple_chunk3_relative(self, m_isinstance, m_scd,
                                               m_open, _m_pickle):
        # Pretend that we are giving DataElement instances
        m_isinstance.return_value = True

        # Testing that appropriate directories are given to safe_create_dir and
        # appropriate filepaths are passed to open.
        expected_uuid_1 = "abcdefg"
        expected_uuid_2 = "1234567"
        expected_uuid_3 = "4F*s93#5"

        mock_elem_1 = mock.MagicMock()
        mock_elem_1.uuid.return_value = expected_uuid_1
        mock_elem_2 = mock.MagicMock()
        mock_elem_2.uuid.return_value = expected_uuid_2
        mock_elem_3 = mock.MagicMock()
        mock_elem_3.uuid.return_value = expected_uuid_3

        # Chunk = 3
        dfs = DataFileSet('rel/subdir', uuid_chunk=3)
        dfs.add_data(mock_elem_1, mock_elem_2, mock_elem_3)
        # Created correct directories
        self.assertEqual(m_scd.call_count, 3)
        m_scd.assert_any_call('rel/subdir/abc/de')
        m_scd.assert_any_call('rel/subdir/123/45')
        m_scd.assert_any_call('rel/subdir/4F*/s93')
        # called open correctly 3 times
        self.assertEqual(m_open.call_count, 3)
        m_open.assert_any_call('rel/subdir/abc/de/UUID_abcdefg.dataElement',
                               'wb')
        m_open.assert_any_call('rel/subdir/123/45/UUID_1234567.dataElement',
                               'wb')
        m_open.assert_any_call('rel/subdir/4F*/s93/UUID_4F*s93#5.dataElement',
                               'wb')
Exemple #4
0
    def test_add_data_multiple_chunk0(self, m_isinstance, m_scd, m_open,
                                      _m_pickle):
        # Pretend that we are giving DataElement instances
        m_isinstance.return_value = True

        # Testing that appropriate directories are given to safe_create_dir and
        # appropriate filepaths are passed to open.
        expected_uuid_1 = "abcdefg"
        expected_uuid_2 = "1234567"
        expected_uuid_3 = "4F*s93#5"

        mock_elem_1 = mock.MagicMock()
        mock_elem_1.uuid.return_value = expected_uuid_1
        mock_elem_2 = mock.MagicMock()
        mock_elem_2.uuid.return_value = expected_uuid_2
        mock_elem_3 = mock.MagicMock()
        mock_elem_3.uuid.return_value = expected_uuid_3

        # Chunk = None
        dfs = DataFileSet('/', uuid_chunk=None)
        dfs.add_data(mock_elem_1, mock_elem_2, mock_elem_3)
        # Created root 3 times
        self.assertEqual(m_scd.call_count, 3)
        m_scd.assert_called_with('/')
        # called open correctly 3 times
        self.assertEqual(m_open.call_count, 3)
        m_open.assert_any_call('/UUID_abcdefg.dataElement', 'wb')
        m_open.assert_any_call('/UUID_1234567.dataElement', 'wb')
        m_open.assert_any_call('/UUID_4F*s93#5.dataElement', 'wb')
Exemple #5
0
    def test_data_serialization(self, m_dfs_sde):
        save_dir = '/not/a/real/dir'

        ds = DataFileSet(save_dir)
        del ds
        ntools.assert_false(m_dfs_sde.called)

        ds = DataFileSet(save_dir)
        de = DataMemoryElement('foo', 'text/plain')
        ds.add_data(de)
        del ds
        ntools.assert_true(m_dfs_sde.called)
Exemple #6
0
    def test_add_data_single(self, m_isinstance, m_scd, m_open, m_pickle):
        # Pretend that we are giving DataElement instances
        m_isinstance.return_value = True

        # Testing that appropriate directories are given to safe_create_dir and
        # appropriate filepaths are passed to open.
        expected_uuid = 'abcd'

        mock_elem = mock.MagicMock()
        mock_elem.uuid.return_value = expected_uuid

        dfs = DataFileSet('/', uuid_chunk=None)
        dfs.add_data(mock_elem)
        m_scd.assert_called_with('/')
        m_open.assert_called_with('/UUID_abcd.dataElement', 'wb')

        dfs = DataFileSet('/', uuid_chunk=1)
        dfs.add_data(mock_elem)
        m_scd.assert_called_with('/')
        m_open.assert_called_with('/UUID_abcd.dataElement', 'wb')

        dfs = DataFileSet('/', uuid_chunk=2)
        dfs.add_data(mock_elem)
        m_scd.assert_called_with('/ab')
        m_open.assert_called_with('/ab/UUID_abcd.dataElement', 'wb')
Exemple #7
0
    def test_add_data_single(self, m_isinstance, m_scd, m_open, _m_pickle):
        # Pretend that we are giving DataElement instances
        m_isinstance.return_value = True

        # Testing that appropriate directories are given to safe_create_dir and
        # appropriate filepaths are passed to open.
        expected_uuid = 'abcd'

        mock_elem = mock.MagicMock()
        mock_elem.uuid.return_value = expected_uuid

        dfs = DataFileSet('/', uuid_chunk=None)
        dfs.add_data(mock_elem)
        m_scd.assert_called_with('/')
        m_open.assert_called_with('/UUID_abcd.dataElement', 'wb')

        dfs = DataFileSet('/', uuid_chunk=1)
        dfs.add_data(mock_elem)
        m_scd.assert_called_with('/')
        m_open.assert_called_with('/UUID_abcd.dataElement', 'wb')

        dfs = DataFileSet('/', uuid_chunk=2)
        dfs.add_data(mock_elem)
        m_scd.assert_called_with('/ab')
        m_open.assert_called_with('/ab/UUID_abcd.dataElement', 'wb')