[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