Determine which way Bezier path is 'facing'
Here's the code that I got working to solve this problem:

import bpy

obj = bpy.context.active_object
curve = obj.data
spline = curve.splines[0]
# setup array for points to be written to
xGlobalPathPoints = []
yGlobalPathPoints = []
zGlobalPathPoints = []
# Iterate through the control points in the spline and append them to the array
for i in range(0, len(spline.bezier_points)):
    if float("{:.3f}".format(float(obj.location.x)))+0 != 0:
        xGlobalPathPoint = obj.location.x * spline.bezier_points[i].co.x
    else:
        xGlobalPathPoint = spline.bezier_points[i].co.x
    xGlobalPathPoint = "{:.3f}".format(float(xGlobalPathPoint))
    xGlobalPathPoints.append(float(xGlobalPathPoint) + 0)
    if float("{:.3f}".format(float(obj.location.y)))+0 != 0:
        yGlobalPathPoint = obj.location.y * spline.bezier_points[i].co.y
    else:
        yGlobalPathPoint = spline.bezier_points[i].co.y
    yGlobalPathPoint = "{:.3f}".format(float(yGlobalPathPoint))
    yGlobalPathPoints.append(float(yGlobalPathPoint) + 0)
    if float("{:.3f}".format(float(obj.location.z)))+0 != 0:
        zGlobalPathPoint = obj.location.z * spline.bezier_points[i].co.z
    else:
        zGlobalPathPoint = spline.bezier_points[i].co.z
    zGlobalPathPoint = "{:.3f}".format(float(zGlobalPathPoint))
    zGlobalPathPoints.append(float(zGlobalPathPoint) + 0)
# determine if path is facing X, Y, or Z
if len(set(xGlobalPathPoints))==1:
    print("faces X")
if len(set(yGlobalPathPoints))==1:
    print("faces Y")
if len(set(zGlobalPathPoints))==1:
    print("faces Z")