Skip to content

Lowercase Uploaded Worksheet Names#153

Merged
JVickery-TBS merged 14 commits intomasterfrom
feature/lowercase-sheetnames
Feb 9, 2026
Merged

Lowercase Uploaded Worksheet Names#153
JVickery-TBS merged 14 commits intomasterfrom
feature/lowercase-sheetnames

Conversation

@JVickery-TBS
Copy link
Contributor

feat(dev): worksheet lowercase;

  • Lowercase uploaded excel worksheet names.

- Lowercase uploaded excel worksheet names.
- Lowercase uploaded excel worksheet names.
- Lowercase uploaded excel worksheet names.
- Lowercase uploaded excel worksheet names.
- Lowercase uploaded excel worksheet names.
- Lowercase uploaded excel worksheet names.
- Lowercase uploaded excel worksheet names.
- Lowercase uploaded excel worksheet names.
- Lowercase uploaded excel worksheet names.
- Lowercase uploaded excel worksheet names.
- Lowercase uploaded excel worksheet names.
- Lowercase uploaded excel worksheet names.
@codecov
Copy link

codecov bot commented Feb 9, 2026

❌ 1 Tests Failed:

Tests completed Failed Passed Skipped
25 1 24 0
View the top 1 failed test(s) by shortest run time
ckanext/recombinant/tests/test_excel.py::TestRecombinantExcel::test_excel_template
Stack Traces | 3.82s run time
self = <ckanext.recombinant.tests.test_excel.TestRecombinantExcel object at 0x7fc181f84130>
app = <ckan.tests.helpers.CKANTestApp object at 0x7fc181b5ef10>

    def test_excel_template(self, app):
        """
        Should be able to write and read and Excel template based
        on the Schema and DataStore records.
        """
        _get_plugin().update_config(config)
    
        # setup sample
        self.lc.action.recombinant_create(dataset_type='sample',
                                          owner_org=self.org['name'])
        _lc, _geno, dataset = _action_get_dataset({'ignore_auth': True,
                                                   'user': self.sysadmin['name']},
                                                  {'dataset_type': 'sample',
                                                   'owner_org': self.org['name']})
        org = self.lc.action.organization_show(
            id=self.org['id'],
            include_datasets=False)
    
        expected_records = [
            {'reference_number': 'sheet_test_1', 'year': 2026},
            {'reference_number': 'sheet_test_2', 'year': 2025},
            {'reference_number': 'sheet_test_3', 'year': 2024},
        ]
    
        # setup sample ds data
        self.lc.action.datastore_upsert(
            resource_id=dataset['resources'][0]['id'],
            force=True,
            method='insert',
            records=expected_records)
    
        # reference_number is primary key in sample, can update year
        for r in expected_records:
            r['year'] = 2001
        expected_records.append({'reference_number': 'sheet_test_new', 'year': 2026})
    
        # write excel file, should not raise any exceptions
        chromo = get_chromo(dataset['resources'][0]['name'])
        book = excel_template(dataset['type'], org)
        append_data(book, expected_records, chromo)
        blob = BytesIO()
        book.save(blob)
    
        # read excel file, should not raise any exceptions
        current_user = model.User.get(self.sysadmin['name'])
        with mock.patch('ckan.lib.helpers.current_user', current_user):
            flask.g.user = self.sysadmin['name']
            _process_upload_file(self.lc, dataset, blob, {}, dry_run=False)
    
        result = self.lc.action.datastore_search(
            resource_id=dataset['resources'][0]['id'])
    
        assert result['total'] == 4
>       assert result['records'] == expected_records
E       AssertionError: assert <LazyJSONObje...year': 2026}]> == [{'reference_...'year': 2026}]
E         Full diff:
E         + <LazyJSONObject [{'_id': 1, 'reference_number': 'sheet_test_1', 'year': 2001}, {'_id': 2, 'reference_number': 'sheet_test_2', 'year': 2001}, {'_id': 3, 'reference_number': 'sheet_test_3', 'year': 2001}, {'_id': 4, 'reference_number': 'sheet_test_new', 'year': 2026}]>
E         - [
E         -  {'reference_number': 'sheet_test_1',
E         -   'year': 2001},
E         -  {'reference_number': 'sheet_test_2',
E         -   'year': 2001},
E         -  {'reference_number': 'sheet_test_3',
E         -   'year': 2001},
E         -  {'reference_number': 'sheet_test_new',
E         -   'year': 2026},
E         - ]

.../recombinant/tests/test_excel.py:87: AssertionError

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

- Lowercase uploaded excel worksheet names.
- Lowercase uploaded excel worksheet names.
@JVickery-TBS JVickery-TBS merged commit d99e6c9 into master Feb 9, 2026
8 checks passed
@JVickery-TBS JVickery-TBS deleted the feature/lowercase-sheetnames branch February 9, 2026 18:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant