Skip to content

Instantly share code, notes, and snippets.

@weshouman
weshouman / README.md
Last active September 1, 2024 22:57
Advanced mocking tips for builtins.open in python

Basic Mocking with mock_open

The simplest approach is to use mock.mock_open to simulate reading from a file. This method works well when one only needs a single return value.

import unittest
from unittest import mock
@weshouman
weshouman / remove_containers_by_image.sh
Last active May 4, 2024 09:58
Remove containers of a given image name
#!/usr/bin/env bash
remove_containers_by_image() {
local image_name=""
local dry_run=false
# Local function to display help
display_help() {
echo "Usage: ${FUNCNAME[1]} [-h|--help] [-n|--dry-run] [-i|--image IMAGE_NAME]"
echo ""
@weshouman
weshouman / how-to-generate-and-use-private-keys-with-openssl-tool.md
Created April 11, 2024 17:02 — forked from briansmith/how-to-generate-and-use-private-keys-with-openssl-tool.md
How to generate & use private keys using the OpenSSL command line tool

How to Generate & Use Private Keys using OpenSSL's Command Line Tool

These commands generate and use private keys in unencrypted binary (not Base64 “PEM”) PKCS#8 format. The PKCS#8 format is used here because it is the most interoperable format when dealing with software that isn't based on OpenSSL.

OpenSSL has a variety of commands that can be used to operate on private key files, some of which are specific to RSA (e.g. openssl rsa and openssl genrsa) or which have other limitations. Here we always use

@weshouman
weshouman / README.md
Last active March 22, 2024 23:50
Using Chart.js in Trilium tutorial files
@weshouman
weshouman / README.md
Last active March 5, 2024 13:26
jira panel colors

jira supports 5 colors for the panels that could be created programmatically

{panel:title=BlueDefault}
{panel}
{panel:title=Green|bgColor=e3fce3}
{panel}
{panel:title=Purple|bgColor=f3f0ff}
{panel}
{panel:title=Orange|bgColor=fff7d6}
{panel}
@weshouman
weshouman / README.md
Last active January 5, 2024 15:36
Sinon structured fake clock

Testing in Both Real and Fake Time in Javascript

The code shows how to jump between the fake and real time allowing to:

  • Execute real-time dependent stubs (in real time), in this scenario it's the HIL simulation.
  • Execute long test in time controlled manner (in fake time), in this scenario it's the HIL test.

Current Implementation

Avoid using await Promise.resolve() by ticking asynchronously, for example using fakeClock.tickAsync() and then you could move between fake and real time, the code is updated to show this solution.

@weshouman
weshouman / README.md
Created December 2, 2023 08:31
vim tips and tricks ep001

Using a macro to add double quotations over multiple lines in vim

  1. Select the Lines of Interest:

    • Move the cursor to the start of the first line where you want to perform the operation.
    • Enter Visual Line mode by pressing Shift+V.
    • Use the up or down arrow keys to extend the selection to cover all lines of interest.
  2. Start Recording the Macro:

    • Press q followed by a letter (like a) to start recording the macro into register a.
@weshouman
weshouman / README.md
Last active December 20, 2023 11:15
Nautilus meld extension

This gist is now packaged and maintained at weshouman/nautilus-meld-compare-extension


Nautilus Meld Extension

Overview

This Nautilus extension allows us to easily compare files and directories using the Meld comparison tool directly from the Nautilus context menu.

@weshouman
weshouman / unittest_with_difftool.py
Last active September 29, 2023 08:13
A python wrapper to show differences using custom tools
import unittest
import tempfile
import subprocess
# One could use vimdiff, meld, or even diff
def diff_with(test_func=None, tool='vimdiff'):
# The decorator was used with parentheses
# thus the test_func is not set, we need to call it ourself
if test_func is None:
return functools.partial(diff_with, tool=tool)
@weshouman
weshouman / README.md
Last active September 9, 2023 16:59
Cilium documentation summary