-
Notifications
You must be signed in to change notification settings - Fork 22
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #150 from pllim/rc-testing
TST: Add RC testing workflow and update exiting
- Loading branch information
Showing
6 changed files
with
115 additions
and
12 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
name: rc-testing | ||
|
||
on: | ||
workflow_dispatch: | ||
|
||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.ref }} | ||
cancel-in-progress: true | ||
|
||
permissions: | ||
contents: read | ||
|
||
jobs: | ||
tests: | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
matrix: | ||
os: [ubuntu-latest] | ||
# TODO: Add more OS when we are sure this package can run on those. | ||
#os: [ubuntu-latest, windows-latest, macos-latest] | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v3 | ||
with: | ||
fetch-depth: 0 | ||
- name: Set up Python | ||
uses: actions/setup-python@v4 | ||
with: | ||
python-version: '3.10' | ||
- name: Install and build | ||
run: | | ||
python -m pip install --upgrade pip wheel setuptools | ||
python -m pip install numpy astropy --pre | ||
python -m pip install -e .[test] | ||
- name: Run tests | ||
run: pytest |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
# Licensed under a 3-clause BSD style license - see PYFITS.rst | ||
|
||
import os | ||
import shutil | ||
import stat | ||
import tempfile | ||
import time | ||
|
||
from astropy.io import fits | ||
|
||
|
||
# This was copied from astropy 5.0.x branch because the version in | ||
# astropy 5.2.x is no longer compatible with tests in this package. | ||
class FitsTestCase: | ||
def setup_method(self): | ||
self.data_dir = os.path.join(os.path.dirname(__file__), "data") | ||
self.temp_dir = tempfile.mkdtemp(prefix="fits-test-") | ||
|
||
# Restore global settings to defaults | ||
# TODO: Replace this when there's a better way to in the config API to | ||
# force config values to their defaults | ||
fits.conf.enable_record_valued_keyword_cards = True | ||
fits.conf.extension_name_case_sensitive = False | ||
fits.conf.strip_header_whitespace = True | ||
fits.conf.use_memmap = True | ||
|
||
def teardown_method(self): | ||
if hasattr(self, "temp_dir") and os.path.exists(self.temp_dir): | ||
tries = 3 | ||
while tries: | ||
try: | ||
shutil.rmtree(self.temp_dir) | ||
break | ||
except OSError: | ||
# Probably couldn't delete the file because for whatever | ||
# reason a handle to it is still open/hasn't been | ||
# garbage-collected | ||
time.sleep(0.5) | ||
tries -= 1 | ||
|
||
fits.conf.reset("enable_record_valued_keyword_cards") | ||
fits.conf.reset("extension_name_case_sensitive") | ||
fits.conf.reset("strip_header_whitespace") | ||
fits.conf.reset("use_memmap") | ||
|
||
def copy_file(self, filename): | ||
"""Copies a backup of a test data file to the temp dir and sets its | ||
mode to writeable. | ||
""" | ||
|
||
shutil.copy(self.data(filename), self.temp(filename)) | ||
os.chmod(self.temp(filename), stat.S_IREAD | stat.S_IWRITE) | ||
|
||
def data(self, filename): | ||
"""Returns the path to a test data file.""" | ||
|
||
return os.path.join(self.data_dir, filename) | ||
|
||
def temp(self, filename): | ||
"""Returns the full path to a file in the test temp dir.""" | ||
|
||
return os.path.join(self.temp_dir, filename) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters