turtle.forward = (poly_side_length)
turtle.left = vertex_angle
That isn't doing what you think it does. You need to call the functions, not assign to them:
turtle.forward(poly_side_length)
turtle.left(vertex_angle)
Roughly speaking, you were telling the turtle "Forward is 50 pixels" instead of "Go forward 50 pixels", and the turtle was redefining its concept of what "forward" means instead of moving.