<div dir="ltr">Hi,<div>I'll try to prepare something.</div><div><br clear="all"><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr">Sincerely,<div>Václav Brůžek</div></div></div></div></div></div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, 28 Feb 2024 at 09:39, Kamil Mankowski <<a href="mailto:mankowski@cert.at">mankowski@cert.at</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">True, you could also - if you had time - propose a change in the base <br>
BotTestCase class to allow overriding the harmonization loader without <br>
subclassing. It was my plan, but just don't have time for that at the <br>
moment.<br>
<br>
Best regards<br>
<br>
// Kamil Mańkowski <<a href="mailto:mankowski@cert.at" target="_blank">mankowski@cert.at</a>> - T: +43 676 898 298 7204<br>
// CERT Austria - <a href="https://www.cert.at/" rel="noreferrer" target="_blank">https://www.cert.at/</a><br>
// CERT.at GmbH, FB-Nr. 561772k, HG Wien<br>
<br>
On 2/28/24 09:31, Vaclav Bruzek wrote:<br>
> Hi,<br>
> thanks for the suggestions. So there are two options<br>
> 1. overwrite the file in intelmq/etc/.<br>
> 2. merge the loaded harmonization in the specific test cases with the <br>
> custom event fields.<br>
> <br>
> This might be a good addition to the documentation.<br>
> <br>
> Sincerely,<br>
> Václav Brůžek<br>
> <br>
> <br>
> On Wed, 28 Feb 2024 at 09:04, Kamil Mankowski <<a href="mailto:mankowski@cert.at" target="_blank">mankowski@cert.at</a> <br>
> <mailto:<a href="mailto:mankowski@cert.at" target="_blank">mankowski@cert.at</a>>> wrote:<br>
> <br>
>     Hi,<br>
> <br>
>     I overcome such a problem by creating a custom test base, look at those<br>
>     snippets as an example:<br>
> <br>
>     import intelmq.lib.test as test<br>
> <br>
>     ADDITIONAL_HARMONIZATION =<br>
>     ["contrib/constituency.harmonization.part.json"]<br>
> <br>
>     def load_harmonization():<br>
>           harmonization = pkg_resources.resource_filename(<br>
>               "intelmq_extensions", "etc/harmonization.conf"<br>
>           )<br>
>           extensions = []<br>
>           for file in ADDITIONAL_HARMONIZATION:<br>
>               with open(pathlib.Path(__file__).parent.parent.parent /<br>
>     file) as f:<br>
>                   extensions.append(json.load(f))<br>
>           return merge_harmonization(extensions, harmonization)<br>
> <br>
>     class TestCaseMixin:<br>
>           harmonization = load_harmonization()<br>
> <br>
>     class BotTestCase(TestCaseMixin, test.BotTestCase):<br>
>           """Provides test class with additional changes required for<br>
>     extension bots"""<br>
> <br>
>     In my case, I'm merging the default harmonization with additional<br>
>     fields, but you can just load your own.<br>
> <br>
>     Best regards<br>
> <br>
>     // Kamil Mańkowski <<a href="mailto:mankowski@cert.at" target="_blank">mankowski@cert.at</a> <mailto:<a href="mailto:mankowski@cert.at" target="_blank">mankowski@cert.at</a>>> -<br>
>     T: +43 676 898 298 7204<br>
>     // CERT Austria - <a href="https://www.cert.at/" rel="noreferrer" target="_blank">https://www.cert.at/</a> <<a href="https://www.cert.at/" rel="noreferrer" target="_blank">https://www.cert.at/</a>><br>
>     // CERT.at GmbH, FB-Nr. 561772k, HG Wien<br>
> <br>
>     On 2/28/24 08:52, Sebix wrote:<br>
>      > Dear Václav,<br>
>      ><br>
>      > Which harmonization file did you change?<br>
>      ><br>
>      > The test library loads the harmonization config from the package<br>
>     itself:<br>
>      ><br>
>      ><br>
>     <a href="https://github.com/certtools/intelmq/blob/ac6aa4e306b1431b6db89158e25ed4c2c5a356bd/intelmq/lib/test.py#L190-L191" rel="noreferrer" target="_blank">https://github.com/certtools/intelmq/blob/ac6aa4e306b1431b6db89158e25ed4c2c5a356bd/intelmq/lib/test.py#L190-L191</a> <<a href="https://github.com/certtools/intelmq/blob/ac6aa4e306b1431b6db89158e25ed4c2c5a356bd/intelmq/lib/test.py#L190-L191" rel="noreferrer" target="_blank">https://github.com/certtools/intelmq/blob/ac6aa4e306b1431b6db89158e25ed4c2c5a356bd/intelmq/lib/test.py#L190-L191</a>><br>
>      ><br>
>      >      harmonization =<br>
>      > utils.load_configuration(pkg_resources.resource_filename('intelmq',<br>
>      > 'etc/harmonization.conf'))<br>
>      ><br>
>      > best regards<br>
>      > Sebastian<br>
>      ><br>
>      > Institute for Common Good Technology<br>
>      > gemeinnütziger Kulturverein - nonprofit cultural society<br>
>      > <a href="https://commongoodtechnology.org/" rel="noreferrer" target="_blank">https://commongoodtechnology.org/</a> <<a href="https://commongoodtechnology.org/" rel="noreferrer" target="_blank">https://commongoodtechnology.org/</a>><br>
>      > ZVR 1510673578<br>
>      ><br>
>      > On 2/28/24 08:39, Vaclav Bruzek wrote:<br>
>      >> Dear IntelMQ Developers & Users,<br>
>      >> I'm trying to incorporate my custom fields in Events and Reports as<br>
>      >> well as test cases for my custom bots in unit tests. What I¨m still<br>
>      >> encountering is that the Github actions are failing since my custom<br>
>      >> fields in harmonization are not known. I've added step which should<br>
>      >> create the harmonization file in /opt/intelmq/etc/ like so which is<br>
>      >> the only change to the action:<br>
>      >><br>
>      >>    - name: Include custom harmonization names<br>
>      >>       run: mkdir -p /opt/intelmq/etc/ && cp<br>
>      >> docker/fast/harmonization.conf /opt/intelmq/etc/<br>
>      >><br>
>      >> However, intelmq still falls back to the default one. If I try<br>
>     to run<br>
>      >><br>
>     manually load_configuration("/opt/intelmq/etc/harmonization.conf") the<br>
>      >> correct result is displayed.<br>
>      >><br>
>      >> Does anybody know how to supply the custom configuration to unit<br>
>     tests?<br>
>      >><br>
>      >> Sincerely,<br>
>      >> Václav Brůžek<br>
>      >><br>
>      ><br>
> <br>
> <br>
</blockquote></div>