fix mocking in notification tests

PVE::Notify::send_notification is now private (the mocking was for the
old api)

'cfs_read_file' gets exported into PVE::Notify before it gets mocked,
so it needs to be mocked inside PVE::Notify, not PVE::Cluster.

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
This commit is contained in:
Wolfgang Bumiller 2023-08-16 11:58:20 +02:00
parent e5721b9062
commit 3571d98b5f

View File

@ -37,15 +37,25 @@ my $result_text;
my $result_properties;
my $mock_notification_module = Test::MockModule->new('PVE::Notify');
$mock_notification_module->mock('send_notification', sub {
my $mocked_notify = sub {
my ($channel, $severity, $title, $text, $properties) = @_;
$result_text = $text;
$result_properties = $properties;
});
};
my $mocked_notify_short = sub {
my ($channel, @rest) = @_;
return $mocked_notify->($channel, '<some severity>', @rest);
};
my $mock_cluster_module = Test::MockModule->new('PVE::Cluster');
$mock_cluster_module->mock('cfs_read_file', sub {
$mock_notification_module->mock(
'notify' => $mocked_notify,
'info' => $mocked_notify_short,
'notice' => $mocked_notify_short,
'warning' => $mocked_notify_short,
'error' => $mocked_notify_short,
);
$mock_notification_module->mock('cfs_read_file', sub {
my $path = shift;
if ($path eq 'datacenter.cfg') {