Added test file, Ruff pass

This commit is contained in:
2026-09-17 10:30:32 -07:00
parent e6320e84c6
commit f9de312610
23 changed files with 61 additions and 116 deletions
+1 -1
View File
@@ -4,5 +4,5 @@ Probe WAVE Files for iXML, Broadcast-WAVE and other metadata.
__all__ = ["WavInfoReader", "WavInfoEOFError"]
from .wave_reader import WavInfoReader
from .riff_parser import WavInfoEOFError
from .wave_reader import WavInfoReader
+8 -8
View File
@@ -1,16 +1,16 @@
from . import WavInfoReader
import datetime
from optparse import OptionParser
import sys
import os
import json
from enum import Enum
import importlib.metadata
import json
import os
import sys
from base64 import b64encode
from cmd import Cmd
from enum import Enum
from optparse import OptionParser
from shlex import split
from typing import List, Dict, Union
from typing import Dict, List, Union
from . import WavInfoReader
class MyJSONEncoder(json.JSONEncoder):
+1 -1
View File
@@ -1,7 +1,7 @@
import struct
# from collections import namedtuple
from typing import NamedTuple, Dict
from typing import Dict, NamedTuple
from . import riff_parser
+3 -2
View File
@@ -1,7 +1,8 @@
# from optparse import Option
import struct
from .rf64_parser import parse_rf64, RF64Context
from typing import NamedTuple, Union, List, Optional
from typing import List, NamedTuple, Optional, Union
from .rf64_parser import RF64Context, parse_rf64
class WavInfoEOFError(EOFError):
+1 -1
View File
@@ -1,6 +1,6 @@
import struct
# from .umid_parser import UMIDParser
# from .umid_parser import UMIDParser
from typing import Optional
+3 -3
View File
@@ -9,10 +9,10 @@ https://www.aelius.com/njh/wavemetatools/doc/riffmci.pdf
"""
from dataclasses import dataclass
from .riff_parser import ChunkDescriptor
from struct import calcsize, unpack
from typing import Any, Dict, Generator, List, NamedTuple, Optional, Tuple
from struct import unpack, calcsize
from typing import Optional, Tuple, NamedTuple, List, Dict, Any, Generator
from .riff_parser import ChunkDescriptor
#: Country Codes used in the RIFF standard to resolve locale. These codes
#: appear in CSET and LTXT metadata.
+4 -5
View File
@@ -7,12 +7,11 @@ Unless otherwise stated, all § references here are to
.. _EBU Tech 3285 Supplement 6: https://tech.ebu.ch/docs/tech/tech3285s6.pdf
"""
from enum import IntEnum, Enum
from struct import unpack
from dataclasses import dataclass, asdict
from typing import List, Tuple, Any, Union
from dataclasses import asdict, dataclass
from enum import Enum, IntEnum
from io import BytesIO
from struct import unpack
from typing import Any, List, Tuple, Union
class SegmentType(IntEnum):
+2 -2
View File
@@ -1,7 +1,7 @@
from .riff_parser import parse_chunk, ListChunkDescriptor
from typing import Optional
from .riff_parser import ListChunkDescriptor, parse_chunk
class WavInfoChunkReader:
def __init__(self, f, encoding):
+4 -4
View File
@@ -1,10 +1,10 @@
from lxml import etree as ET
import io
from enum import IntEnum
# from collections import namedtuple
from typing import Optional
from enum import IntEnum
from typing import NamedTuple
from typing import NamedTuple, Optional
from lxml import etree as ET
class IXMLTrack(NamedTuple):
+7 -9
View File
@@ -1,18 +1,16 @@
# -*- coding: utf-8 -*-
import struct
import os
from typing import Optional, Generator, Any, NamedTuple
import pathlib
import struct
from typing import Any, Generator, NamedTuple, Optional
from .riff_parser import parse_chunk, ChunkDescriptor, ListChunkDescriptor
from .wave_ixml_reader import WavIXMLFormat
from .wave_bext_reader import WavBextReader
from .wave_info_reader import WavInfoChunkReader
from .riff_parser import ChunkDescriptor, ListChunkDescriptor, parse_chunk
from .wave_adm_reader import WavADMReader
from .wave_dbmd_reader import WavDolbyMetadataReader
from .wave_bext_reader import WavBextReader
from .wave_cues_reader import WavCuesReader
from .wave_dbmd_reader import WavDolbyMetadataReader
from .wave_info_reader import WavInfoChunkReader
from .wave_ixml_reader import WavIXMLFormat
from .wave_smpl_reader import WavSmplReader
#: Calculated statistics about the audio data.
+1 -2
View File
@@ -1,6 +1,5 @@
import struct
from typing import Tuple, NamedTuple, List
from typing import List, NamedTuple, Tuple
class WaveSmplLoop(NamedTuple):
+1 -1
View File
@@ -1,7 +1,7 @@
""" """
from optparse import OptionParser, OptionGroup
import sys
from optparse import OptionGroup, OptionParser
def main():
-42
View File
@@ -1,42 +0,0 @@
from . import test_wave_parsing
from io import BytesIO
from typing import Generator
import zipfile as zf
import os.path
import os
from contextlib import contextmanager
# class TestFileLoader:
# """
# This guy manages the test_files archive.
# """
# def __init__(self, test_file_arch_name = 'archive.zip') -> None:
# self.base_path = os.path.join(os.path.dirname(__file__), "test_files")
# self.test_file_arch_name = test_file_arch_name
# self._gather_test_files_into_archive()
# @property
# def arch_path(self):
# return os.path.join(self.base_path, self.test_file_arch_name)
# @contextmanager
# def open(self, name) -> Generator[BytesIO]:
# z = zf.ZipFile(self.arch_path, 'r')
# member = z.open(name, 'r')
# try:
# yield member
# finally:
# zf.close()
# def _gather_test_files_into_archive(self):
# with zf.ZipFile(self.arch_path, 'a') as zip:
# for root, _, files in os.walk(self.base_path):
# for name in files:
# if root == self.base_path and name == self.test_file_arch_name:
# continue
# else:
# p = os.path.join(root, name)
# zip.write(p)
# os.unlink(p)
+1 -1
View File
@@ -1,5 +1,5 @@
from unittest import TestCase
from glob import glob
from unittest import TestCase
import wavinfo
+1 -1
View File
@@ -1,7 +1,7 @@
from unittest import TestCase
import wavinfo
from wavinfo.wave_dbmd_reader import SegmentType, DolbyDigitalPlusMetadata
from wavinfo.wave_dbmd_reader import DolbyDigitalPlusMetadata, SegmentType
class TestDolby(TestCase):
Binary file not shown.
+8 -10
View File
@@ -1,28 +1,26 @@
import glob
import sys
import unittest
from unittest.mock import patch
from wavinfo.__main__ import main
import sys
import glob
class MainTest(unittest.TestCase):
def test_empty_argv(self):
with patch.object(sys, "argv", []):
try:
main()
except:
self.fail("main() throwing an exception")
except Exception as e:
self.fail(f"main() throwing an exception: {e}")
def test_a_file(self):
for path in glob.glob("tests/test_files/**/*.wav"):
with patch.object(sys, "argv", ["TEST", path]):
try:
main()
except:
self.fail("main() throwing an exception")
except Exception as e:
self.fail(f"main() throwing an exception: {e}")
def test_ixml(self):
with patch.object(
@@ -30,5 +28,5 @@ class MainTest(unittest.TestCase):
):
try:
main()
except:
self.fail("main() throwing an exception")
except Exception as e:
self.fail(f"main() throwing an exception: {e}")
+1 -2
View File
@@ -1,12 +1,11 @@
# import os.path
import gzip
from glob import glob
# from typing import Dict, Any, cast
# from typing import Dict, Any, cast
from unittest import TestCase
# from .utils import all_files, ffprobe
import wavinfo
+1 -1
View File
@@ -1,5 +1,5 @@
from unittest import TestCase
from glob import glob
from unittest import TestCase
import wavinfo
+5 -5
View File
@@ -1,7 +1,7 @@
import unittest
import wavinfo
import glob
import unittest
import wavinfo
class TestWalk(unittest.TestCase):
@@ -29,8 +29,8 @@ class TestWalk(unittest.TestCase):
try:
for _, _, _ in info.walk():
pass
except:
self.fail(f"Failed to walk metadata in file {file}")
except Exception as e:
self.fail(f"Failed to walk metadata in file {file}: {e}")
if __name__ == "__main__":
+3 -4
View File
@@ -1,13 +1,12 @@
import os.path
from glob import glob
from typing import Dict, Any, cast
from typing import Any, Dict, cast
from unittest import TestCase
from .utils import all_files, ffprobe
import wavinfo
from .utils import all_files, ffprobe
class TestWaveInfo(TestCase):
def test_sanity(self):
+1 -7
View File
@@ -1,12 +1,6 @@
import os.path
import sys
import json
import subprocess
from subprocess import PIPE
from unittest import TestCase
import wavinfo
# import wavinfo
class TestZoomF8(TestCase):
+4 -4
View File
@@ -1,8 +1,8 @@
import os.path
import sys
import subprocess
from subprocess import PIPE
import json
import os.path
import subprocess
import sys
from subprocess import PIPE
FFPROBE = "ffprobe"