--- /dev/null
+import pytest
+import busio
+from board import *
+
+
+def test_i2c_scan_random():
+    i2c = busio.I2C(SCL, SDA)
+    i2c.try_lock()
+    addr_list = i2c.scan()
+    assert len(addr_list) == 3
+    for addr in addr_list:
+        assert addr >= 0x0 and addr <= 0x79
+    i2c.unlock()
+    i2c.deinit()
 
--- /dev/null
+# SPDX-FileCopyrightText: 2024 Brent Rubell for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
+"""I2C Class for Generic Agnostic Board"""
+from random import randint
+#from .generic_agnostic_board.pin import generic_agnostic_board
+
+
+class I2C:
+    """Custom I2C Class for a Generic Agnostic Board"""
+
+    def __init__(self, *, frequency=100000):
+        #self._generic_agnostic_board = generic_agnostic_board
+        self.freq = frequency
+
+    @staticmethod
+    def scan():
+        """Mocks an I2C scan and returns a list of 3 randomly generated
+        I2C addresses from 0x0 to 0x79.
+        """
+        # Generate a list of 3 randomly generated addresses from 0x0 to 0x79
+        address_list = []
+        for _ in range(3):
+            address_list.append(randint(0x0, 0x79))
+        return address_list
 
 
 * Author(s): cefn
 """
+import os
 try:
     import threading
 except ImportError:
 
             self._i2c = _I2C(frequency=frequency)
             return
+
+        if "BLINKA_FORCECHIP" in os.environ and os.environ["BLINKA_FORCEBOARD"] == "GENERIC_AGNOSTIC_BOARD":
+            from adafruit_blinka.microcontroller.generic_agnostic_board.i2c import I2C as _I2C
+
+            self._i2c = _I2C(frequency=frequency)
+            return
+
         if detector.board.greatfet_one:
             from adafruit_blinka.microcontroller.nxp_lpc4330.i2c import I2C as _I2C