• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Beakerboy / MS-OVBA / 24349534171

13 Apr 2026 02:41PM UTC coverage: 89.026% (+0.1%) from 88.889%
24349534171

Pull #149

github

web-flow
Merge e2cb0cf1d into 2b8340dfb
Pull Request #149: Update dirStream.py

174 of 256 new or added lines in 7 files covered. (67.97%)

1 existing line in 1 file now uncovered.

1225 of 1376 relevant lines covered (89.03%)

4.44 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

54.55
/src/ms_ovba/Models/Entities/reference.py
1
from __future__ import annotations
5✔
2
import struct
5✔
3
from ms_ovba.Models.Entities.reference_record import ReferenceRecord
5✔
4
from ms_ovba.Models.Fields.doubleEncodedString import (
5✔
5
    DoubleEncodedString
6
)
7
from typing import TypeVar
5✔
8

9

10
T = TypeVar('T', bound='Reference')
5✔
11

12

13
class Reference():
5✔
14
    """
15
    2.3.4.2.2.1 REFERENCE Record
16
    """
17
    def __init__(self: T, ref: ReferenceRecord,
5✔
18
                 name: str = '') -> None:
19
        self._ref = ref
5✔
20
        self._refname = name
5✔
21

22
    def pack(self: T, endien: str, cp_name: str) -> bytes:
5✔
23
        name_pack = b''
5✔
24
        if self._refname is not None:
5✔
25
            name_de = DoubleEncodedString([0x0016, 0x003E], self._refname)
5✔
26
            name_pack = name_de.pack(endien, cp_name)
5✔
27

28
        return name_pack + self._ref.pack(endien, cp_name)
5✔
29

30
    @staticmethod
5✔
31
    def unpack(data: bytes, endien: str) -> Reference:
5✔
32
        endien_symbol = '<' if endien == 'little' else '>'
×
33
        name = ''
×
34
        offset = 0
×
NEW
35
        id, size1 = struct.unpack_from(f"{endien_symbol}HI", data, offset)
×
36
        if id == 0x0016:
×
NEW
37
            offset += 6
×
NEW
38
            format = f"{endien_symbol}{size1}sHI"
×
NEW
39
            name, id, size2 = struct.unpack_from(format, data, offset)
×
NEW
40
            offset += size1 + 6
×
UNCOV
41
            if size2 != size1 * 2:
×
42
                # raise warning
43
                pass
×
44
            # format = endien_symbol + size2 + "s"
45
            # name2 = struct.unpack_from(format, data, offset)
46
            offset += size2
×
47
            # if name2 != unicode version on name1:
48
            #     raise warning
49

50
        bytestring = data[offset:]
×
51
        ref = ReferenceRecord.unpack(bytestring, endien)
×
52
        return Reference(ref, name)
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc