The st_atime field is changed by accessing files, for example, using execve (2), mknod (2), pipe (2), utime (2), and read (2) (greater than zero). Other procedures, such as mmap (2), may or may not update st_atime.
As long as you run "python test.py", it will not call read (2), instead it will call mmap (2). Therefore, the access time has not been verified.
Here is the output of "strace python test.py"
open("test.py", O_RDONLY) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=36, ...}) = 0 mmap(NULL, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2ad626cdd000
fwu
source share