[IntelMQ-users] Custom harmonization configuration in tests
Kamil Mankowski
mankowski at cert.at
Wed Feb 28 09:04:23 CET 2024
Hi,
I overcome such a problem by creating a custom test base, look at those
snippets as an example:
import intelmq.lib.test as test
ADDITIONAL_HARMONIZATION = ["contrib/constituency.harmonization.part.json"]
def load_harmonization():
harmonization = pkg_resources.resource_filename(
"intelmq_extensions", "etc/harmonization.conf"
)
extensions = []
for file in ADDITIONAL_HARMONIZATION:
with open(pathlib.Path(__file__).parent.parent.parent / file) as f:
extensions.append(json.load(f))
return merge_harmonization(extensions, harmonization)
class TestCaseMixin:
harmonization = load_harmonization()
class BotTestCase(TestCaseMixin, test.BotTestCase):
"""Provides test class with additional changes required for
extension bots"""
In my case, I'm merging the default harmonization with additional
fields, but you can just load your own.
Best regards
// Kamil Mańkowski <mankowski at cert.at> - T: +43 676 898 298 7204
// CERT Austria - https://www.cert.at/
// CERT.at GmbH, FB-Nr. 561772k, HG Wien
On 2/28/24 08:52, Sebix wrote:
> Dear Václav,
>
> Which harmonization file did you change?
>
> The test library loads the harmonization config from the package itself:
>
> https://github.com/certtools/intelmq/blob/ac6aa4e306b1431b6db89158e25ed4c2c5a356bd/intelmq/lib/test.py#L190-L191
>
> harmonization =
> utils.load_configuration(pkg_resources.resource_filename('intelmq',
> 'etc/harmonization.conf'))
>
> best regards
> Sebastian
>
> Institute for Common Good Technology
> gemeinnütziger Kulturverein - nonprofit cultural society
> https://commongoodtechnology.org/
> ZVR 1510673578
>
> On 2/28/24 08:39, Vaclav Bruzek wrote:
>> Dear IntelMQ Developers & Users,
>> I'm trying to incorporate my custom fields in Events and Reports as
>> well as test cases for my custom bots in unit tests. What I¨m still
>> encountering is that the Github actions are failing since my custom
>> fields in harmonization are not known. I've added step which should
>> create the harmonization file in /opt/intelmq/etc/ like so which is
>> the only change to the action:
>>
>> - name: Include custom harmonization names
>> run: mkdir -p /opt/intelmq/etc/ && cp
>> docker/fast/harmonization.conf /opt/intelmq/etc/
>>
>> However, intelmq still falls back to the default one. If I try to run
>> manually load_configuration("/opt/intelmq/etc/harmonization.conf") the
>> correct result is displayed.
>>
>> Does anybody know how to supply the custom configuration to unit tests?
>>
>> Sincerely,
>> Václav Brůžek
>>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <http://lists.cert.at/pipermail/intelmq-users/attachments/20240228/fd9b061a/attachment.sig>
More information about the IntelMQ-users
mailing list